Laravel 5表单URL创建

时间:2015-05-19 05:49:38

标签: php laravel-5 blade

尝试获取以下表单的URL以正确填充。已经磕磕绊绊了一段时间,所以在这里寻求帮助。

从下面的代码中可以看出,我打开表单 - 绑定模型 - 并尝试动态设置URL。完整的URL类似于{username} / account / cards / id,所以我需要传递用户名(我想传递经过身份验证的用户(因为他们只能访问自己的页面)和ID卡他们正试图更新。

{!! Form::model($card, ['method' => 'PATCH', 'action' =>  'Account\CardsController@update', array(Auth::user()->username, $card->id) ]) !!}

现在这一切都发生在刀片(前端),所以不是100%我做错了。我尝试过动作,网址,路线......由于某些原因我无法获得任何工作。我在这个问题上遇到的错误是一个数组到字符串错误。但是,如果我无法构建数组,我如何传递多个变量?所以在这里有点困惑。

任何帮助将不胜感激。

由于

CITTI

3 个答案:

答案 0 :(得分:2)

这是我之前回答的更新。你可以尝试这个:

{!! Form::model($card, ['method' => 'PATCH', 'action' =>  [ 'Account\CardsController@update', Auth::user()->username, $card->id] ]) !!}

答案 1 :(得分:0)

您只是将路线参数作为选项传递给Form::model标签,而不是路线。尝试:

{!! Form::model($card, ['method' => 'PATCH', 'action' =>  [ 'Account\CardsController@update', [Auth::user()->username, $card->id] ] ]) !!}

如果您仍然遇到问题,我建议您为路线命名并在行动中引用指定的路线。

答案 2 :(得分:0)

如果我没有弄错的话,如果你将变量传递给控制器​​,那么动作应该是一个数组。例如:

{!! Form::model($card, array('method' => 'PATCH', 'action' =>  array('Account\CardsController@update', Auth::user()->username, $card->id))) !!}

不确定您是否使用Larvel Collective HTML和Forms,但它们与Laravel版本基本相同。此页面:http://laravelcollective.com/docs/5.0/html#form-model-binding详细说明了您的特定用例。

希望它有所帮助。

P.S。尝试添加:

{!! Form::hidden('_method', 'PATCH') !!}

...在open标记下面而不是在其中。这与L5方法欺骗有关,对于任何不是“POST”或“GET”的东西,我认为这通常是必要的。 (即'PUT','PATCH'和'DELETE')