正在努力使以下表单的URL正确填充。我在这个问题上遇到了一些困难,所以在这里寻求一些帮助。
从下面的代码中可以看到,我打开了表单——绑定了模型——并尝试动态设置URL。完整的URL类似于{username}/帐户/卡/id,所以我需要传递它的用户名(我想通过身份验证的用户(因为他们只能访问自己的页面)和他们试图更新的卡的id。
{!! Form::model($card, ['method' => 'PATCH', 'action' => 'Account'CardsController@update', array(Auth::user()->username, $card->id) ]) !!}
现在这一切都发生在刀片(前端),所以不是100%我做错了。我试过action, url, route…不知什么原因,我什么都动不了。我在这里遇到的错误是数组到字符串的错误。但如果我不能建立一个数组,我怎么传递多个变量?这里有点混乱。
任何帮助将不胜感激。
感谢Citti
这是我之前回答的更新。你可以试试这个:
{!! Form::model($card, ['method' => 'PATCH', 'action' => [ 'Account'CardsController@update', Auth::user()->username, $card->id] ]) !!}
你只是把你的路由参数作为一个选项传递给Form::model
标签,而不是路由。试一试:
{!! Form::model($card, ['method' => 'PATCH', 'action' => [ 'Account'CardsController@update', [Auth::user()->username, $card->id] ] ]) !!}
如果你仍然有问题,我建议你命名你的路由,并在动作中引用命名的路由。
如果我没有弄错的话,如果您将变量传递给控制器,则动作应该是数组。例:
{!! Form::model($card, array('method' => 'PATCH', 'action' => array('Account'CardsController@update', Auth::user()->username, $card->id))) !!}
不确定你是否在使用Larvel集体HTML和表单,但它们本质上与Laravel版本相同。这个页面:http://laravelcollective.com/docs/5.0/html#form-model-binding解释了更多关于你的特定用例的信息。
希望有帮助。
注:尝试添加:
{!! Form::hidden('_method', 'PATCH') !!}
…在打开标签下面,而不是在它里面。我认为,这与L5方法欺骗有关,并且对于非"POST"或"GET"的任何内容通常都是必要的。(即'PUT', 'PATCH'和'DELETE')