【问题标题】:validator wont pass any $errors to blade验证器不会将任何 $errors 传递给刀片
【发布时间】:2017-03-27 11:51:37
【问题描述】:

我正在尝试使用此代码验证来自:

            $this->validate($request, [
            'address' => 'required',
            'quantity' => 'required',
        ],
        [
            'address.required' => 'Endereço Invalido',
            'quantity.required' => 'Quatidade Invalida'
        ]);

        return back()->withErrors("test123");

当我不填写表单字段时,它会返回表单页面而没有错误,但是当我填写它时,它会返回 test123 错误,我在这里的验证做错了什么? :\

注意:因为人们用解决方案回复我 return back()->withErrors("test123");我的问题不在于返回,这只是我用来知道 $errors 数组是否正确填充到刀片模板的测试,我的问题是 $this->validate() 没有通过 $error数组到刀片模板

【问题讨论】:

标签: laravel validation


【解决方案1】:

你需要在withErrors()内返回一个数组

【讨论】:

  • 我的问题不在 return back()->withErrors("test123");这只是一个测试,看看 $errors 是否被填满,我的问题是验证,它正在工作(如果字段没有被填满,它会返回)但没有支持正确的错误
【解决方案2】:

验证错误绑定到附加了Illuminate\View\Middleware\ShareErrorsFromSession 中间件的视图。

会不会是你的路由不在 'web' 中间件组中?

例如:注意->middleware('web');

Route::get('/', function () {
    //
})->middleware('web');

更多阅读:https://laravel.com/docs/5.4/validation#quick-displaying-the-validation-errors

【讨论】:

  • 我所有的路由都在 routes/web.php 他们应该有 ShareErrorsFromSession ,还有 back()->withErrors("teste");运行良好
  • 我已经编辑了我的答案以包含一个代码示例,说明具有“网络”中间件组的路由是什么样的。
猜你喜欢
  • 2021-07-17
  • 1970-01-01
  • 2019-10-03
  • 1970-01-01
  • 1970-01-01
  • 2018-09-22
  • 1970-01-01
  • 1970-01-01
  • 2020-06-24
相关资源
最近更新 更多