2016-10-15 4 views
0

Я пытаюсь создать пользовательскую проверку, чтобы проверить, был ли файл загружен в форму.Laravel 5 пользовательская проверка, если файл не был загружен

Я посмотрел на пользовательские ошибки docs, но не смог заставить его работать.

Я нашел этот учебник: Custom Error

В мой контроллер я делаю это:

if($request->hasFile('file')) 
     $has_file = 1; 
    else 
     $has_file = 0; 

$this->validate($request, ['file' => 'isuploaded']); 

В App/ServiceProvider Я добавил это:

Validator::extend('isuploaded', function($attribute, $value, $parameters, $validator) { 
     return ?; 
    }); 

Что я должен вернуться сюда? Как отправить файл $ has_file в валидатор?

ответ

1

Если поле file не требуется, то validate проверит его для вас.

Предполагая, что ваш входной файл имеет вид name="file", просто:

$this->validate($request, [ 
    'file' => 'required 
]); 

Таким образом, если нет файла проверка будет выполнена.

Если это не ваш случай, и вы хотите создать пользовательские правила в Validator::extend, вы должны написать свою собственную бизнес-логику, чтобы проверить, существует ли файл и просто вернуть true/false.

+0

Я пытался, 'file' => 'required', но ничего не делает, если я не загружаю файл. –

+0

Убедитесь, что ваше поле ввода называется 'file', иначе вам нужно отредактировать метод' validate' чтобы соответствовать вашим собственным –

+0

Вы решили? –