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

时间:2019-05-18 13:04:58

标签: php laravel eloquent crud nested-routes

我正在创建具有以下结构的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以提供这种方法?

1 个答案:

答案 0 :(得分:1)

使用点符号:

Route::resource('events.invites', 'EventInvitesController');

这将为包含用户标识符的帖子创建一组路由。例如:

在此处查看文档:

https://laravel.com/docs/5.1/controllers#restful-nested-resources