具有多个变量的Laravel表单路由

时间:2015-01-07 17:50:55

标签: php laravel eloquent blade

在我看来,这是我的刀片表格标签;

{{ Form::model($client_agreement, array('route' => array( 'clients/'.$client->id.'/client-agreements.update', $client_agreement->id), 'method' => 'PUT')) }}

这是我的路线;

Route::resource('clients', 'ClientController');

Route::resource('agreements', 'AgreementController');

Route::resource('clients/{id}/client-agreements', 'ClientAgreementController');

正如您所看到的,我正在尝试将表单提交到第3条路线。但相反,我不断收到错误;

Route [clients/5/client-agreements.update] not defined. 

我所有其他RESTful路由似乎都运行正常,但这是我第一次传递多个变量。即。 $client->id$client_agreement->id - 两者都存在,因为我可以在屏幕上打印出来。

1 个答案:

答案 0 :(得分:2)

您正在寻找nested resources(您需要在文档中向下滚动一下)

您只需使用“dot”语法指定嵌套资源,Laravel将负责其余的工作:

Route::resource('clients', 'ClientController');

Route::resource('agreements', 'AgreementController');

Route::resource('clients.agreements', 'ClientAgreementController');

根据方法,网址将为clients/1/agreementsclients/1/agreements/1

这也将改变函数参数在ClientAgreementController内的外观。

index($clientId)
create($clientId)
store($clientId)
show($clientId, $agreementId)
edit($clientId, $agreementId)
update($clientId, $agreementId)
destroy($clientId, $agreementId)