Laravel 5表单URL创建


Laravel 5 form URL creation

正在努力使以下表单的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')