Laravel 5 形成 URL 创建

Laravel 5 form URL creation

正在努力使以下表单的 URL 正确填充。纠结了一段时间所以在这里寻求帮助。

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

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

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

如有任何帮助,我们将不胜感激。

谢谢

花旗

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

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

如果您仍然遇到问题,我建议您命名您的路线并在操作中引用命名的路线。

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

{!! 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 Collective HTML 和 Forms,但它们与 Laravel 版本本质上相同。此页面:http://laravelcollective.com/docs/5.0/html#form-model-binding 解释了有关您的特定用例的更多信息。

希望对您有所帮助。

P.S。尝试添加:

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

...在打开标签下方而不是在其中。这与 L5 方法欺骗有关,我相信对于任何不是 'POST' 或 'GET' 的东西通常都是必需的。 (即 'PUT'、'PATCH' 和 'DELETE')