【问题标题】:Laravel 5.2 Validation working but $errors variable is emptyLaravel 5.2 验证工作但 $errors 变量为空
【发布时间】:2016-04-08 02:37:30
【问题描述】:

我到处寻找类似的问题并尝试了所有答案。验证器检查规则并正确重定向。但在我看来,$errors 变量仍然是空的。

控制器:

public function postSlidesAdd(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'priority' => 'required',
            'text' => 'required',
            'image' => 'required'
        ]);

        if ($validator->fails()) {
            return redirect()->back()->withErrors($validator);
        }
        //insert to db and redirect back
    }

路线:

Route::group(['middleware' => ['web']], function () {
    Route::post('/admin/slides/add', [
        'uses' => 'SitesController@postSlidesAdd',
        'as' => 'admin.slides.add'
    ]);
});

查看:

<div class="">
            @if(count($errors)>0))
                <ul>
                    @foreach($errors->all() as $error)
                        <li>{{$error}}</li>

                    @endforeach
                </ul>

            @endif
        </div>

我想我遗漏了一些小而重要的东西,请帮忙。 我正在使用 Laravel 5.2.29

更新: 如果这有任何帮助;在我的控制器中:

if ($validator->fails()) {
        dd($validator->errors());
        return back()->withErrors($validator);
    }

这会转储一个数组'messages',里面是另一个包含[输入名称=>错误消息]的数组。我认为这是要发送到视图的数组,但它没有通过。请帮忙,我做错了什么。

【问题讨论】:

  • 我想是$validator-&gt;message()?
  • 感谢您的快速回复,但验证器中不存在 message() 方法;
  • 哦。试着让它messages()
  • sir 类中仍未找到消息方法。

标签: php validation laravel-5.2


【解决方案1】:

app\Http\Kernel.php 中,将\Illuminate\Session\Middleware\StartSession::class 从“网络”$middlewareGroups 移动到$middleware

【讨论】:

    【解决方案2】:

    您的视图文件有错误;你有一个额外的括号。尝试改变这个:

    @if(count($errors)>0))
    

    到这里:

    @if(count($errors) > 0)
    

    另外,在您的控制器中,尝试更改:

    return redirect()->back()->withErrors($validator);
    

    到这里:

    return back()->withErrors($validator);
    

    【讨论】:

    • 感谢您的快速回复。我更新了它,但 $errors 中仍然没有数据。
    • 您好,先生,我更新了它。还是空的。如果这有任何帮助;在我的控制器中: if ($validator->fails()) { dd($validator->errors());返回()->withErrors($validator);它返回一个“消息”数组,里面是另一个带有[输入名称=>错误消息]的数组。
    • 尝试在您的视图中的 if 语句之前运行 {{ dd($errors) }}
    • 我把它放在@if(isset($errors)) 中,否则视图将不会加载。它返回 ViewErrorBag {#182 ▼ #bags: [] } 一个空数组
    • 您确定发生了有效错误吗?您提交的表单字段是什么? dd($request-&gt;all()) 在您的控制器中打印出什么?
    猜你喜欢
    • 2016-08-17
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2017-01-13
    • 1970-01-01
    • 2021-09-17
    • 2016-06-17
    相关资源
    最近更新 更多