У меня есть поле ввода, которое я динамически добавляю с помощью jQuery, это поле ввода для видео-ссылок, которое пользователь может добавить столько раз, сколько захочет, и мне нужно проверить, не является ли URL-адрес действителен для всех полей, если в них что-то написано, мне также необходимо оставить его как необязательное поле. Я пытался сделать это, следуя this example но, очевидно, не работает для меня:Проверка массива Laravel 5.2
Это моя полевая форма:
{!! Form::text('external_media[]', null,['class' => 'form-control col-lg-10 external-media-input']) !!}
И в моем контроллер магазине функции Я пытался проверить это следующим образом:
$this->validate($request->all(), [
'external_media.*' => 'present|active_url',
]);
Когда я отправляю данные из формы создания, $request->all()
выглядит следующим образом:
array:11 [▼
"_token" => "JQXZjFEs3ETgVqh2izcmJx1h3sGryFvDkzGGtVAd"
"external_media" => array:3 [▶]
"category" => "1"
"type" => "0"
"title" => "sdbvsdb"
]
Но я получаю ошибку:
FatalThrowableError in ValidatesRequests.php line 49:
Type error: Argument 1 passed to App\Http\Controllers\Controller::validate() must be an instance of Illuminate\Http\Request, array given, called in /home/vagrant/Projects/myProject/app/Http/Controllers/Admin/Articles/ArticlesController.php on line 66
Я также попытался с созданием проверки с правилами в запросах файлы, как это:
$rules = [
'title' => 'required',
'text' => 'required',
//'image' => 'required|image|max:20000',
];
foreach($this->request->get('external_media') as $val)
{
$rules[$val] = 'present|active_url';
}
return $rules;
Но тогда, когда у меня есть пустое поле для external_media, Я получаю эту ошибку:
ErrorException in helpers.php line 531:
htmlentities() expects parameter 1 to be string, array given (View: /home/vagrant/Projects/iCoop5.2/resources/views/admin/articles/create.blade.php)
Почему вы не используете проверку active_url для проверки URL-адресов? https://laravel.com/docs/5.2/validation#rule-active-url – Abhishek
Или это https://laravel.com/docs/5.2/validation#rule-url – Abhishek
Я изменил это, но это, очевидно, не проблема, я получаю эту ошибку, потому что есть проблема с массивом, она даже не входит в часть проверки. Возможно, название не отражает, какова реальная проблема, я отредактирую вопрос. – Marco