Laravel - 使用multipart / form-data时,表单请求验证返回空$错误

时间:2017-03-23 12:27:51

标签: laravel laravel-5 multipartform-data blade

我在Blade视图上打印$ errors时遇到问题。我在控制器/型号上使用验证器,一切正常,刀片可以打印$错误。 但现在我想将该验证迁移到Form请求。

如果我使用json / ajax(application / json)一切正常,所有错误都会响应。但是当我使用form-data(multipart / form-data)时,$ errors变量总是为空。

我缺少什么?这是一些代码:

查看:

{{ Form::open(['url' => 'foo','files' => true, 'name'=>'foo-form']) }}
    //some inputs
{{Form::close()}}

表格申请:

public function authorize()
{
   return true;
}

public function rules()
{
   return [
       "id"   => "required|exists:foo,id",
       "begin_date"  => "required|date",
       "end_date"    => "required|date|after:begin_date"
   ];
}

[编辑]

我已经尝试了很多方法来显示我的错误:

- 官方方式: https://laravel.com/docs/5.4/validation#quick-displaying-the-validation-errors

- 使用var_dump和dd

- 我的方式(在模型/控制器上使用验证器):

@if(Session::has('errors'))
  <div class="alert alert-danger alert_header">
    @foreach(Session::get('errors') as $error)
      <p>{{ $error }}</p>
    @endforeach
  </div>
@endif

我已经使用浏览器(Chrome)和邮差测试了

[编辑]

控制器:

public function uploadFoo(StoreUploadFoo $request)
{
  return "Foo without errors";
}

Laravel版本:5.4

1 个答案:

答案 0 :(得分:0)

您可能需要在控制器中设置会话,以便在$error变量中返回所需的值。

public function uploadFoo(StoreUploadFoo $request)
{
    Session::flash('errors', array('id' => 'ID required', 'begin_date' => 'Begin Date required', 'end_date' => 'End Date'));
    return redirect('/url/to/your/view');
}

然后在你看来:

@if(Session::has('errors'))
<div class="alert alert-danger alert_header">
    @foreach(Session::get('errors') as $error)
       <p>{{ $error }}</p>
    @endforeach
</div>
@endif

希望这有助于你的情况。

相关问题