2016-08-08 3 views
2

У меня есть контроллер ресурса, расположенного внутри маршрутной группы, как так:контроллер ресурсов rotue имя внутри группы маршрутов в Laravel

Route::group(['as' => 'admin.', 'prefix' => 'admin'], function() { 
    Route::get('/', ['as' => 'index']); 

    Route::patch('categories/{id}', ['uses' => '[email protected]', 'as' => 'categories.restore']); 
    Route::resource('categories', 'controller'); 
}); 

Первый маршрут является admin/ с названием маршрута admin.index, как и ожидалось.
Транспортный маршрут "extra" - admin/categories/{id} с номером маршрута admin.categories.restore.
Но странные вещи случаются, когда мы проверяем имена маршрутов для контроллера ресурсов.
Маршруты, как и ожидалось, изд. admin/categories/{categories} но имена маршрутов являются аль префикса admin.admin.

Я знаю, что может решить эту проблему путем удаления as в группе маршрутизации и префиксов имен маршрутов для других ресурсов внутри группы, за исключением контроллера ресурсов, но я бы как найти способ, как исправить это, не редактируя мою группу маршрутов.

Добавленное изображение (часть) мой маршрут перечисляет route list

ответ

0

This комментарий на Laravel GitHub описывает проблему полностью.
Что СЛУЧИЛОСЬ:
Pre , все контроллеры ресурсов в группе маршрутов будут первыми искать as декларации, то для prefix и будут использовать как определить свое имя, например, as.prefix.resource.

This вопрос содержит пояснения и изменения, внесенные в Laravel 5.3, чтобы предотвратить такое поведение. В его нынешнем виде:

URL-адреса префикса больше не влияют на имена маршрутов, назначенные маршрутам при использовании Route :: resource, так как это поведение побеждало цель использования имен маршрутов в первую очередь.

Смежные вопросы