错误消息未发送到Blade。 Laravel 5.2.12

时间:2016-01-29 10:28:56

标签: php laravel laravel-5.1 laravel-5.2

我使用的是Laravel 5.2.12

我有一个请求类,如下所示。

class RegisterRequest extends Request
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'UserName'      =>  'required|min:5|max:50',
            'Password'      =>  'required|confirmed|min:5|max:100',
        ];
    }

    public function response(array $errors){
        print_r($errors);
        return \Redirect::back()->withErrors($errors)->withInput();
    }
}

此请求类用于在Laravel的内置模板中注册期间验证数据。以下是方法

public function postRegister(RegisterRequest $request)
//            **Check here** ^^^^^^^^^^^^^^^
{
    return $this->register($request);
}

我们可以在下面找到此方法的路径。

  

\厂商\ laravel \框架\ SRC \照亮\基金会\验证\ RegistersUsers.php

以下是在Register页面中编写的代码。

@if (count($errors) > 0)
    <div class="alert alert-danger">
        <strong>Whoops!</strong> There were some problems with your input.<br><br>
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

有什么问题?

错误消息未显示在寄存器Blade中。

到目前为止我尝试了什么?

在请求类中,有以下方法。

public function response(array $errors){
    print_r($errors);
    //die();
    return \Redirect::back()->withErrors($errors)->withInput();
}

虽然我在启用die()时打印但它从不发送错误消息 在刀片中。

1 个答案:

答案 0 :(得分:0)

我在Kernel.php中做了一些更改。现在我可以查看Blade中的错误消息。

原始代码。

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
];

修改为

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
];