Поэтому я следовал этому руководству, чтобы узнать, как загружать изображения в Laravel с помощью Vue: Загрузка и проверка изображения с помощью Laravel и VueJs
Все работает нормально, но я хочу сделать загрузку изображения необязательной. Теперь пользовательская проверка не выполняется для файла AppServiceProvider
. если у него нет ввода, я получаю эту ошибку
попытка доступа к атрибуту внутри несуществующего массива. Неопределенное смещение: 1
Я мог бы избежать ошибки, спросив
if (request('image'))
В контроллере и применяя проверку для других полей, только если изображение не указано. Однако это становится невероятно грязным.
Поэтому я ищу способ заставить работать пользовательское правило проверки, если нет ввода. Или это неправильный путь?
Вот пользовательское правило проверки:
public function boot()
{
Validator::extend('image64', function ($attribute, $value, $parameters, $validator) {
$type = explode('/', explode(':', substr($value, 0, strpos($value, ';')))[1])[1];
if (in_array($type, $parameters)) {
return true;
}
return false;
});
Validator::replacer('image64', function($message, $attribute, $rule, $parameters) {
return str_replace(':values',join(",",$parameters),$message);
});
}