Кастомные правила валидации в Laravel
В последней версии Laravel 4.2 на сегодняшний день нет родного правила валидации для букв и пробелов, есть только для букв, только для букв и цифр, только для букв, тире и нижнего тире. Чтобы решить эту проблему необходимо создать собственное правило валидации. Мы рассмотрим вариант с внедренеием Service Provider.
Для начала создадим ValidationServiceProvider.php:
use Illuminate\Support\ServiceProvider;
class ValidatorServiceProvider extends ServiceProvider {
public function register() {
// nothing yet
}
public function boot() {
$this->app->validator->resolver(function($translator, $data, $rules, $messages) {
return new CustomValidator($translator, $data, $rules, $messages);
});
}
}
Затем необходимо дать знать о нем в app/config/app.php:
''Validation\ValidatorServiceProvider',
);
Затем composer dumpautoload
Далее создаем наш кастомный класс CustomValidator.php, который будет проверять на UTF-8 буквы и пробелы (у метода обязательно должен быть префикс validateRuleName):
class CustomValidator extends \Illuminate\Validation\Validator {
public function validateAlphaSpaces($attribute, $value, $parameters) {
if (preg_match('/^[\pL\s]+$/u', $value)) {
return true;
}
return false;
}
}
Потом необходимо добавить сообщение для нашего правила валидации в app/lang/ru/validation.php:
'title' => array(
'alpha_spaces' => 'Поле :attribute может содержать только буквы и пробелы.',
),
),
Теперь мы можем использовать наше собственное правило валидации в виде 'alpha_spaces'
- 3374 просмотра
Разделы
Комменты
-
Olzhas 10 месяцев 1 неделя назадСпасибо. С Новым Годом! →
-
Den 11 месяцев 3 дня назадВ первой функции, при создании переменной $li_previous нужно поменять '←' с NULL, в $li_next сделать тоже самое. →
-
Гость 11 месяцев 3 дня назадЕсли все ровно так как было описано, то нет никаких сомнений что домен увел сам регистратор. Потому что вероятность того →
-
Валерий 12 месяцев 2 дня назадда можно делать импорт-экспорт только лишь в оболочке на входя на mysql сервер →
-
admin 12 месяцев 2 дня назадВалерий, а зачем вам именно так делать экспорт? Если я не ошибаюсь, то там нет какой-либо команды чтобы сделать экспорт →
-
Валерий 12 месяцев 4 дня назадзахожу на mysql через ssh по команде →
-
admin 12 месяцев 4 дня назадДобрый вечер, какой у вас клиент? →
-
Валерий 1 год 14 часов назадЗдравстуйте, есть команда чтобы сделать экспорт базы внутри mysql клиента? →
-
Eduard 1 год 1 неделя назадВидать, домен хороший был. Заявление пробывали писать на мошенника? →
-
Stas 1 год 1 месяц назадОшибка в ключе квантификатора - replace(/будешь|пить/ig, "хлеб"); Указать -g для прохода по всем совпадениям! →
Комментарии (0)