Laravel验证错误显示

时间:2016-07-27 12:26:21

标签: php forms laravel

我正在尝试将验证错误显示在我的应用程序中并且遇到了问题。

我尝试了几种不同的方法,这就是我目前设置的方式......

我的路线看起来像这样:

<?php

Route::group(['middleware' => ['web']], function () {

    Route::get('/', [
        'as'   => 'home',
        'uses' => 'HomeController@index'
    ]);

    Route::post('/mailing', [
        'as' => 'mailing.create',
        'uses' => 'MailingController@create'
    ]);

});

我的邮件控制器如下所示:

class MailingController extends Controller
{
    public function create(Request $request)
    {
        $this->validate($request, [
            'email' => 'required',
        ]);
        dd($request->email);
    }
}

我的表单看起来像这样......

            <form action="{{ route('mailing.create') }}" method="post">

                <label for="email">
                    Email
                    <input type="text" name="email" id="email">
                    @if ($errors->has('email'))
                        {{ $errors->first('email') }}
                    @endif
                </label>

                <input type="submit">
                {{ csrf_field() }}
            </form>

当我提交一个空表单时,它会转到MailingController中的create方法,但是没有任何反应,也没有显示错误。只是形式。

真的应该可行,问题可能是上面的例子对Laravel 5.1有用但在最新的5.2版本中不起作用吗?

非常感谢你的好意。

2 个答案:

答案 0 :(得分:1)

您可以在official documentation中看到默认情况下应用了Web中间件组:

  

请记住,Web中间件组会自动应用于   您的默认routes.php文件由RouteServiceProvider。

如果你执行

 php artisan route:list

您可以看到中间件被应用于Web路由器两次。

您必须删除该组

Route::group(['middleware' => ['web']], function () {

}

这在次要的5.2版本中有所改变,因此很可能在&#34;作曲家更新&#34;之后出现此错误。

更多信息herehere

答案 1 :(得分:0)

好吧,我似乎必须回答我自己的问题......在laravel 5.2中,路由自动在中间件路由中,因此改变路由...

<?php

Route::group(['middleware' => ['web']], function () {

    Route::get('/', [
        'as'   => 'home',
        'uses' => 'HomeController@index'
    ]);

    Route::post('/mailing', [
        'as' => 'mailing.create',
        'uses' => 'MailingController@create'
    ]);

});

<?php

    Route::get('/', [
        'as'   => 'home',
        'uses' => 'HomeController@index'
    ]);

    Route::post('/mailing', [
        'as' => 'mailing.create',
        'uses' => 'MailingController@create'
    ]);

修正了一切。