2017-02-11 7 views
0

У меня есть следующий запрос формы:Laravel 5,1 - Возвращение Первая ошибка С СформироватьЗапрос Validation

class FileRequest extends Request 
{ 

    public function authorize() 
    { 
     return true; 
    } 

    public function rules() 
    { 

     $rules = []; 

     if($this->file_type == 'image') 
     $rules['file'] = 'required|image|mimes:jpg,jpeg,gif|max:244|image_size:>=360,>=180'; 
    else 
     $rules['file'] = 'required|mimes:doc,pdf,docx,txt,rtf|max:1000'; 

     return $rules; 

    } 

    public function messages() 
    { 
     $messages = [ 
     'file.image_size' => 'The image size is incorrect.' 
     ]; 

     return $messages; 
    } 

    public function response(array $errors) 
    { 
     $content = "<textarea data-type=\"application/json\">{\"ok\": false, \"message\": \"" . $errors[0] . "\" }</textarea>"; 
     return response($content); 

    } 



} 

Как вернуть первую ошибку из массива ошибок.

Когда я вручную создаю валидатор, я могу сделать следующее: $validator->errors()->first(), но это не сработает при использовании класса FormRequest. Выполнение errors[0] просто дает мне ошибку исключения смещения.

Я использую iframe submit, поэтому мне нужно вернуть ответ, как указано выше.

Любая помощь приветствуется.

ответ

0

Я должен был сделать следующее:

$errors['file'][0] 
0

Вам, похоже, нужна система валидатора из laravel. После этого вы можете использовать: $ validator-> messages(); для всех ошибок. Если вы используете $ validator-> messages() [0]; у вас будет первое сообщение.

Я предлагаю вам что-то вроде этого

 public function store(Request $request) 
    { 
    $validator = Validator::make($request->all(), [ 
     'file' =>'required|image|mimes:jpg,jpeg,gif|max:244|image_size:>=360,>=180'; 

    ]); 

    if ($validator->fails()) { 
     return redirect('post/create') 
        ->withErrors($validator) 
        ->withInput(); 
    } 

    // Store the file 
} 
+0

Я знаю, как сделать это, сделав валидатор, но я использую класс запроса формы и я хочу достичь этого в классе запроса формы. – adam78

+0

защищенная функция formatErrors (Validator $ validator) { return $ validator-> errors() -> all(); } Вы попробовали это? – Exarkun