【问题标题】:Error using withErrors() when returning view返回视图时使用 withErrors() 出错
【发布时间】:2020-12-09 15:09:26
【问题描述】:

我想提交我的 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

【问题讨论】:

  • 尝试不使用 error 指令,@if($errors->has('csv')) Error!!! @endif

标签: laravel laravel-blade laravel-validation laravel-form


【解决方案1】:

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

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

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

【讨论】:

  • 我仍然有问题,但问题必须来自我的观点。我刚刚写了以下内容:@error('csv') <div class="invalid-feedback">dddddd</div> @enderror ,当我删除它时,我可以看到我的视图(当然没有错误)。也许 Laravel 不再使用 @error 了?
  • 我从未使用过@error 组件。如果要使用此功能,则必须抛出 ValidationException 而不是自己将 $errors 传递到视图中。
猜你喜欢
  • 2018-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多