我有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个参数。
答案 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()方法根据该字段/变量进行不同的验证。