2017-01-11 3 views
1

На моем веб-сайте я разрешаю пользователям загружать изображения. Наряду с этими изображениями пользователи также могут добавлять теги к изображениям.Проверка нескольких пользовательских тегов в Laravel

Fiddle демо здесь: https://jsfiddle.net/cn9nqfj3/4/

У меня есть две проблемы с этим, однако.

Во-первых, как я мог пройти это так же, как и с остальной частью запроса?

Например, в проверке моего контроллера, у меня есть:

$this->validate($request, [ 
    'title' => 'required|max:40|min:2|string', 
    'mature' => 'required', 
    'categorie' => 'required', 
    'description' => 'string|max:2000', 
    'fileUpload' => 'required|image', 
    'tag' => 'max:20|alpha_num', 
]); 

но как бы работа теги?

При добавлении тегов разметки генерируется следующим образом:

<span class="tag"><span class="close">×</span>#tag1</span> 
<span class="tag"><span class="close">×</span>#tag2</span> 

, так что я не знаю, как я бы даже передать это до проверки, как это не обычный элемент формы.

Вторая проблема заключается в том, как проверка даже обрабатывает несколько тегов.

Мне нужно что-то вроде конструкции foreach, чтобы проверить, не превышает ли я, превышение лимита количества тегов, а затем проверяет их все по одному для таких вещей, как буквенно-цифровые и еще что-то?

ответ

1

или вы можете использовать ВЫБ.2 плагин, который обсуждается в этом эпизоде ​​laracast серии ... https://laracasts.com/series/laravel-5-fundamentals/episodes/24

+0

Это не отвечает на мой вопрос напрямую, но я закончил с вашим ответом, поэтому, я думаю, я согласен с тобой. Благодарю. –

2

Вам понадобится вход для входа в виде массива входов.

IE <input type="text" name="tag[]">

Чтобы получить это, вы должны искать пути, чтобы получить информацию из вашего яваскрипта тегов плагина. У большинства плагинов тегов есть метод для этого или будет генерировать поля ввода для вас.

В Laravel можно проверить массивы, см https://laravel.com/docs/5.3/validation#validating-arrays

Последняя строка будет 'tag.*' => 'max:20|alpha_num',

+0

Спасибо ! Ваш ответ немного помог, несмотря на переход на плагин select2. –

Смежные вопросы