2个视图到1个控制器update()

时间:2019-03-12 03:11:12

标签: laravel

我有2种不同的视图/表单-它们是代表可以填写一些信息的表单。

view1允许代表填写很多个人信息。

view2允许代表填写更详细的信息。

两种形式的代码都如下:

{!! Form::open(['action' => ['DelegatesController@update',$delegate->id], 'method' => 'POST', 'enctype' => 'multipart/form-data']) !!}

{{Form::hidden('_method', 'PUT')}}
{{Form::submit('Submit', ['class' => 'btn btn-primary'])}}

问题在于两个视图都返回到DelegatesController update()方法,并且由于它们都仅在请求中携带部分个人信息,因此验证失败。

是否有一种方法可以在Controller中拥有2个update()方法,每个方法分别由单独的视图调用?还是update()方法告诉哪个视图调用它的方法?

我一直在纠缠于不同的路线和不同的Controller代码以及put / patch,但无法使它正常工作-我会尝试使用不允许的方法或传递1个参数而不是2个参数。

1 个答案:

答案 0 :(得分:0)

如果我在Controller中使用与update()方法完全相同的参数创建第二个方法,则会收到以下错误消息:

  

函数的参数太少

     

App \ Http \ Controllers \ DelegatesController :: update_bwofeedback(),1   通过并恰好有2个预期

update()方法具有以下参数: 公共功能更新(请求$ request,$ delegateid) 所以它确实需要2个参数,但是除了方法名之外,我没有在视图的窗体末端进行任何更改,因此我不确定如何将2个参数传递给update()而不是update2()

对于隐藏字段,我之前曾尝试更改:

{{Form::hidden('_method', 'PUT')}}

收件人:

{{Form::hidden('_method', 'PUT2')}}

但我遇到了错误:

  

Symfony \组件\ HttpKernel \异常\   MethodNotAllowedHttpException没有消息

我现在正在考虑您的隐藏字段可能与此隐藏方法不同?我将研究是否可以仅以每种形式合并一个字段/变量,并让update()方法根据该字段/变量进行不同的验证。