如何将资源路由与嵌套控制器(具有父模型)一起使用

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