【问题标题】:Laravel validation errors displayingLaravel 验证错误显示
【发布时间】:2016-07-27 21:07:08
【问题描述】:

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

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

我的路线如下所示:

<?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 版本中不起作用?

非常感谢您的关心。

【问题讨论】:

    标签: php forms laravel


    【解决方案1】:

    official documentation可以看到默认应用web中间件组:

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

    如果你执行

     php artisan route:list
    

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

    你必须删除组

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

    这在 5.2 次要版本中已更改,因此您可能在“作曲家更新”后遇到此错误。

    更多信息herehere

    【讨论】:

      【解决方案2】:

      看来我必须回答我自己的问题...在 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'
          ]);
      

      修复一切。

      【讨论】:

        猜你喜欢
        • 2018-12-05
        • 1970-01-01
        • 2012-12-14
        • 1970-01-01
        • 2016-06-28
        • 1970-01-01
        • 2018-08-26
        • 2016-10-13
        • 2018-04-19
        相关资源
        最近更新 更多