Бортовой журнал Ктулху

Кастомная валидация полей в Laravel 5

Ковыряя laravel5-example, наткнулся на небольшой баг с валидацией тегов.

По умолчанию теги сохранялись только в латиннице.

 

dc86d963a4

Разумеется, для русскоязычного блога это неприемлемо.

Значит, придется переделывать валидацию.

В-принципе, если просто ее отключить, результат будет такой же, но лучше все же сделать правильно.

В Laravel есть много готовых шаблонов валидации здесь. Можно было бы взять например alpha_num, но в данном случае нужны запятые да и пробелы не помешали бы.

В таком случае может помочь шаблон regex:pattern.

Меняем код:

return [
'title' => 'required|max:255',
'summary' => 'required|max:65000',
'content' => 'required|max:65000',
'slug' => 'required|unique:posts,slug' . $id,
'tags' => 'tags'
];

на

return [
'title' => 'required|max:255',
'summary' => 'required|max:65000',
'content' => 'required|max:65000',
'slug' => 'required|unique:posts,slug' . $id,
'tags' => 'regex:/[a-zа-я0-9,]/'
];

и получаем кириллицу и запятые.

Можно и пробел добавить, но я пока не стал.