【问题标题】:Laravel 5.2.29 $error handling and Request fileLaravel 5.2.29 $错误处理和请求文件
【发布时间】:2016-04-18 08:19:00
【问题描述】:

我在我的一个项目中使用 Laravel 5.2.29。我正在使用 Laravel 请求文件来验证我的用户输入。如果验证器失败,错误消息应显示在输入字段下方。

但问题是,如果验证器失败,它不会显示任何错误消息,也不会提交表单。这是刀片文件,需要 3 个输入,电子邮件/密码和密码确认

test.blade.php

<!-- email input-->
<div class="form-group {{ $errors->has('email') ? 'has-error' : '' }}">
    <label class="col-md-4 control-label" for="email">email</label>
      <div class="col-md-4">
        <input id="Name" name="email" type="text" placeholder="Enter email address" class="form-control input-md" required="">
        {!! $errors->first('email','<span class="help-block">:message</span>') !!}
      </div>
</div>

<div class="form-group {{ $errors->has('password') ? 'has-error' : '' }}">
    <label class="col-md-4 control-label" for="password">password</label>
      <div class="col-md-4">
        <input id="Name" name="password" type="password"  class="form-control input-md" required="">
        {!! $errors->first('password','<span class="help-block">:message</span>') !!}
      </div>
</div>
<div class="form-group {{ $errors->has('password_confirmation') ? 'has-error' : '' }}">
   <label class="col-md-4 control-label" for="password">Confirm Password</label>
    <div class="col-md-4">
      <input id="Name" name="password_confirmation" type="password"  class="form-control input-md" required="">
      {!! $errors->first('password_confirmation','<span class="help-block">:message</span>') !!}
  </div>
</div>


   <!-- Button -->
<div class="form-group">
  <label class="col-md-4 control-label" for=""></label>
  <div class="col-md-4">
    <button id="" name="" class="btn btn-primary">Submit</button>
  </div>
</div>

testRequest.php

public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'email'     => 'required|email',
            'password'  => 'required|min:3|confirmed'
        ];
    }

testController.php(资源控制器)

public function store(testRequest $request)
    {
        $test = User::create([
          'email'    => $request->email,
          'password' => bcrypt($request->password);
        ]);
        return redirect("/");
    }

routes.php

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

当我点击提交按钮时,在确认密码字段中使用不同的密码,它不会给我任何错误。也不提交表格;它至少应该说密码确认不匹配。我的代码没有任何问题。是版本 5.2.29 的问题吗?完全相同的东西适用于 5.2.22。

【问题讨论】:

  • 您是否在控制器中定义了“使用 App\Http\Requests\testRequest”?因为我使用的是相同的版本及其作品
  • @Vipul 是的,当然。因为如果你不添加它,你会在导航到测试页面之前得到一个错误 - 找不到类

标签: php forms laravel-5.2


【解决方案1】:

我发现了错误。从 laravel 5.2.29 开始,web 中间件将默认应用于所有路由。所以写下面的代码应该行不通。

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

只要写Route::resource('test','testController');就可以查询路由服务商了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 2016-05-29
    • 2015-11-08
    相关资源
    最近更新 更多