首页 > 解决方案 > 返回视图时使用 withErrors() 出错

问题描述

我想提交我的 laravel 表单,如果我的 csv 未设置为输入文件,则会出现一些错误。所以我确实喜欢这个,简单,基本:

public function store(Request $request) {

    $validator = Validator::make($request->all(), [
        'csv' => 'required|mimes:csv',
    ]);

    if($validator->fails())
    {
        return view(backpack_view('upload/upload-nb-postes'))->withErrors($validator);
    }
}

验证器当然失败了,所以它应该用错误消息呈现我的视图,但我有一个错误:

Facade\Ignition\Exceptions\ViewException
Call to undefined method Illuminate\Support\MessageBag::getBag() 

我检查了 MessageBag 类......是的,没有getBag()方法。所以我该怎么做 ?我不能用这个withErrors()方法...

我试过:

return view(backpack_view('upload/upload-nb-postes'))->withErrors(['csv' = > 'test');

同样的问题,我还检查了是否有一些错误消息。

也许用作曲家更新?我不会让我的项目崩溃。

更多信息 :

Laravel version : 6.17.1
Laravel locale : fr
Laravel config cached : false
PHP version : 7.4.3

标签: laravellaravel-bladelaravel-validationlaravel-form

解决方案


您必须调用errors$validator 实例的方法。

return view(backpack_view('upload/upload-nb-postes'))->withErrors($validator->errors());

在您的视图中,使用 $errors->first('csv') 访问错误消息。


推荐阅读