Вед-дев, Сео, Манимейкинг

Кастомные правила валидации в Laravel

В последней версии Laravel 4.2 на сегодняшний день нет родного правила валидации для букв и пробелов, есть только для букв, только для букв и цифр, только для букв, тире и нижнего тире. Чтобы решить эту проблему необходимо создать собственное правило валидации. Мы рассмотрим вариант с внедренеием Service Provider.

Для начала создадим ValidationServiceProvider.php:

namespace Validation;

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:

'providers' => array(
        ''Validation\ValidatorServiceProvider',
);

Затем composer dumpautoload

Далее создаем наш кастомный класс CustomValidator.php, который будет проверять на UTF-8 буквы и пробелы (у метода обязательно должен быть префикс validateRuleName):

namespace Validation;

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:

'custom' => array(
        'title' => array(
                'alpha_spaces' => 'Поле :attribute может содержать только буквы и пробелы.',
        ),
),

Теперь мы можем использовать наше собственное правило валидации в виде 'alpha_spaces'



Комментарии (0)

Разделы

Подписаться

Подписка на RSS-лента последние записи из Блога

Комменты

  • Olzhas 11 месяцев 3 недели назад
    Спасибо. С Новым Годом! 
  • Den 1 год 1 неделя назад
    В первой функции, при создании переменной $li_previous нужно поменять '←' с NULL, в $li_next сделать тоже самое. 
  • Гость 1 год 1 неделя назад
    Если все ровно так как было описано, то нет никаких сомнений что домен увел сам регистратор. Потому что вероятность того 
  • Валерий 1 год 1 месяц назад
    да можно делать импорт-экспорт только лишь в оболочке на входя на mysql сервер 
  • admin 1 год 1 месяц назад
    Валерий, а зачем вам именно так делать экспорт? Если я не ошибаюсь, то там нет какой-либо команды чтобы сделать экспорт 
  • Валерий 1 год 1 месяц назад
    захожу на mysql через ssh по команде  
  • admin 1 год 1 месяц назад
    Добрый вечер, какой у вас клиент? 
  • Валерий 1 год 1 месяц назад
    Здравстуйте, есть команда чтобы сделать экспорт базы внутри mysql клиента? 
  • Eduard 1 год 1 месяц назад
    Видать, домен хороший был. Заявление пробывали писать на мошенника? 
  • Stas 1 год 3 месяца назад
    Ошибка в ключе квантификатора - replace(/будешь|пить/ig, "хлеб"); Указать -g для прохода по всем совпадениям!