在我看来,这是我的刀片表格标签;
{{ 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
- 两者都存在,因为我可以在屏幕上打印出来。
答案 0 :(得分:2)
您正在寻找nested resources(您需要在文档中向下滚动一下)
您只需使用“dot”语法指定嵌套资源,Laravel将负责其余的工作:
Route::resource('clients', 'ClientController');
Route::resource('agreements', 'AgreementController');
Route::resource('clients.agreements', 'ClientAgreementController');
根据方法,网址将为clients/1/agreements
或clients/1/agreements/1
。
这也将改变函数参数在ClientAgreementController
内的外观。
index($clientId)
create($clientId)
store($clientId)
show($clientId, $agreementId)
edit($clientId, $agreementId)
update($clientId, $agreementId)
destroy($clientId, $agreementId)