Laravel 具有多个变量的表单路由
Laravel Form Routing With Multiple Variables
这是我视图中的 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');
如您所见,我正在尝试将表单提交到第三条路线。但是我一直收到错误;
Route [clients/5/client-agreements.update] not defined.
我的所有其他 RESTful 路线似乎工作正常,但这是我第一次不得不传递多个变量。 IE。 $client->id
和 $client_agreement->id
- 它们都存在,因为我可以在屏幕上打印出来。
您正在寻找 nested resources(您需要在文档中向下滚动一点)
您只需使用 "dot" 语法指定嵌套资源,Laravel 将处理其余部分:
Route::resource('clients', 'ClientController');
Route::resource('agreements', 'AgreementController');
Route::resource('clients.agreements', 'ClientAgreementController');
URL 将是 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)
这是我视图中的 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');
如您所见,我正在尝试将表单提交到第三条路线。但是我一直收到错误;
Route [clients/5/client-agreements.update] not defined.
我的所有其他 RESTful 路线似乎工作正常,但这是我第一次不得不传递多个变量。 IE。 $client->id
和 $client_agreement->id
- 它们都存在,因为我可以在屏幕上打印出来。
您正在寻找 nested resources(您需要在文档中向下滚动一点)
您只需使用 "dot" 语法指定嵌套资源,Laravel 将处理其余部分:
Route::resource('clients', 'ClientController');
Route::resource('agreements', 'AgreementController');
Route::resource('clients.agreements', 'ClientAgreementController');
URL 将是 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)