如何将资源路由与嵌套控制器(具有父模型)一起使用
How can I use resource routes with nested controllers (that have parent models)
我正在创建具有以下结构的 Elequent 模型:
Event->hasMany(Invite)
Invite->belongsTo(Event)
我正在使用以下 artisan 命令创建控制器:
php artisan make:controller -mInvite -pEvent EventInvitesController --resource
现在,如果我创建如下自定义路线:
Route::get('event/{event}/invite', 'EventInvitesController@index')->name('event.invites.index');
Route::post('event/{event}/invite', 'EventInvitesController@store')->name('event.invites.store');
Route::get('event/{event}/invite/{invite}', 'EventInvitesController@show')->name('event.invites.show');
Route::put('event/{event}/invite/{invite}', 'EventInvitesController@update')->name('event.invites.update');
Route::delete('event/{event}/invite/{invite}', 'EventInvitesController@destroy')->name('event.invites.destroy');
Route::get('event/{event}/invite/{invite}/edit', 'EventInvitesController@edit')->name('event.invites.edit');
然后一切正常。但我想知道是否有办法做到这一点
Route::resource('event-invites', 'EventInvitesController');
当我尝试这样做时,当我需要两个时,路由只有一个 {event_invites} 参数。
有没有办法在 Route::resource() 中为父模型启用路由?
如果不是,我将如何扩展 Route 以提供这样的方法?
使用点符号:
Route::resource('events.invites', 'EventInvitesController');
这将为包含用户标识符的帖子创建一组路由。例如:
在此处查看文档:
https://laravel.com/docs/5.1/controllers#restful-nested-resources
我正在创建具有以下结构的 Elequent 模型:
Event->hasMany(Invite)
Invite->belongsTo(Event)
我正在使用以下 artisan 命令创建控制器:
php artisan make:controller -mInvite -pEvent EventInvitesController --resource
现在,如果我创建如下自定义路线:
Route::get('event/{event}/invite', 'EventInvitesController@index')->name('event.invites.index');
Route::post('event/{event}/invite', 'EventInvitesController@store')->name('event.invites.store');
Route::get('event/{event}/invite/{invite}', 'EventInvitesController@show')->name('event.invites.show');
Route::put('event/{event}/invite/{invite}', 'EventInvitesController@update')->name('event.invites.update');
Route::delete('event/{event}/invite/{invite}', 'EventInvitesController@destroy')->name('event.invites.destroy');
Route::get('event/{event}/invite/{invite}/edit', 'EventInvitesController@edit')->name('event.invites.edit');
然后一切正常。但我想知道是否有办法做到这一点
Route::resource('event-invites', 'EventInvitesController');
当我尝试这样做时,当我需要两个时,路由只有一个 {event_invites} 参数。
有没有办法在 Route::resource() 中为父模型启用路由? 如果不是,我将如何扩展 Route 以提供这样的方法?
使用点符号:
Route::resource('events.invites', 'EventInvitesController');
这将为包含用户标识符的帖子创建一组路由。例如:
在此处查看文档:
https://laravel.com/docs/5.1/controllers#restful-nested-resources