Как я могу использовать маршруты ресурсов с вложенными контроллерами (у которых есть родительские модели)

Я создаю модели Elequent со следующей структурой:

Event->hasMany(Invite)
Invite->belongsTo(Event)

Я создаю контроллер с помощью следующей команды ремесленника:

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, чтобы предоставить такой метод?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
453
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте запись через точку:

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

Это создаст набор маршрутов для сообщений, которые включают идентификатор пользователя. Например:

Ознакомьтесь с документацией здесь:

https://laravel.com/docs/5.1/controllers#restful-вложенные-ресурсы

@Kaan Удачного кодирования :) Если вас сильно интересует Laravel, загляните в мой блог: kerneldev.com

Sapnesh Naik 18.05.2019 15:34

Почему это больше не документировано в более поздних версиях Laravel (после версии 5.1)? Он все еще работает, это не мой вопрос. Может быть, есть какая-то новая философия?

Ametad 21.05.2019 15:27

@Ametad Я тоже нашел это странным. Я не могу понять, почему подумал, моя первая мысль была, что они забыли включить это? Я не знаю. Вы можете попробовать открыть вопрос на GitHub, если вы действительно хотите знать, почему.

Sapnesh Naik 21.05.2019 20:04

Здесь удалено: github.com/laravel/docs/commit/…

Ametad 23.05.2019 23:38

Другие вопросы по теме