Php Laravel 5表单URL创建

Php Laravel 5表单URL创建,php,laravel-5,blade,Php,Laravel 5,Blade,正在努力使以下表单的URL正确填充。有一段时间我一直在犹豫,所以来这里寻求帮助 从下面的代码中可以看到,我正在打开表单-绑定模型-并尝试动态设置URL。完整的URL类似于{username}/account/cards/id,因此我需要传递用户名(我希望传递给经过身份验证的用户(因为他们只能访问自己的页面)和他们试图更新的卡的id {!! Form::model($card, ['method' => 'PATCH', 'action' => 'Account\CardsContr

正在努力使以下表单的URL正确填充。有一段时间我一直在犹豫,所以来这里寻求帮助

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

{!! Form::model($card, ['method' => 'PATCH', 'action' =>  'Account\CardsController@update', array(Auth::user()->username, $card->id) ]) !!}
现在这一切都发生在刀片服务器(前端)上,所以不是100%我做错了什么。我已经尝试了操作、url、路由…出于某种原因,我无法让任何东西工作。我在这一个上遇到的错误是一个数组到字符串的错误。但如果我不能构建数组,我如何传递多个变量?所以这里有点困惑

任何帮助都将不胜感激

谢谢


Citti

您只是将路由参数作为选项传递给
表单::模型
标记,而不是路由。请尝试:

{!! 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和表单,但它们基本上与Larvel版本相同。本页:详细介绍您的特定用例

希望能有帮助

请尝试添加:

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

…在打开的标记下面,而不是在它里面。这与L5方法欺骗有关,我相信对于任何不是“POST”或“GET”的东西通常都是必需的。(例如,“PUT”、“PATCH”和“DELETE”)

您是否尝试过使用
route()
helper?这样您的代码看起来像这样
'action'=>路由(“card\u update\u route”,['username'=>Auth::user()->username,'id'=>$card->id])
{Form::model($card,['method'=>'PATCH','action'=>route('{username}.account.cards.update',['username'=>Auth::user()->username,'cards'=>$card->id]))获取以下错误:UrlGenerator.php第540行中的ErrorException:Action App\Http\Controllers\not defined。对于更复杂的操作,命名路由是最佳做法吗?只是好奇。正在阅读入门教程,但他们从未真正涉及到任何问题。仍然获取以下错误:helpers.php li中的ErrorExceptionne 546:数组到字符串的转换(视图:是的,它能够创建正确的URL,但在表单帮助器的上下文中不起作用。如下:{!!表单::模型($card,['method'=>'PATCH','action'=>route('update\u account\u card',['username'=>Auth::user()->用户名,'cards'=>$card->id])抛出一个未定义和一个InvalidArgumentException就是这样。现在我正在尝试思考您的原始答案,以便我可以看到我做错了什么。我认为您刚刚将其包装在数组()中。无论如何,这现在工作得很好!感谢您的帮助!