Используя Laravel 4.2, можно ли присвоить имя маршруту контроллера ресурсов? Мой маршрут определяется следующим образом:
Route::resource('faq', 'ProductFaqController');
Я попробовал добавить опцию имени на маршрут следующим образом:
Route::resource('faq', 'ProductFaqController', array("as"=>"faq"));
Однако, когда я ударяю маршрут / faq и размещаю {{ Route::currentRouteName() }} на мой взгляд, он faq.faq.index а не только faq .
Когда вы используете маршрут контроллера ресурсов, он автоматически генерирует имена для каждого отдельного маршрута, который он создает. Route::resource() – это, в основном, вспомогательный метод, который затем генерирует для вас отдельные маршруты, а не вам нужно определять каждый маршрут вручную.
Вы можете просмотреть названия маршрутов, созданные путем ввода php artisan routes в Laravel 4 или php artisan route:list в Laravel 5 в ваш терминал / консоль. Вы также можете просмотреть типы имен маршрутов, сгенерированных на странице документов контроллера ресурсов ( Laravel 4.x | Laravel 5.x ).
Существует два способа изменить имена маршрутов, сгенерированные контроллером ресурсов:
Поместите массив names как часть третьего параметра $options array, причем каждый ключ является методом контроллера ресурсов (индекс, хранилище, редактирование и т. Д.), А значение – имя, которое вы хотите передать маршруту.
Route::resource('faq', 'ProductFaqController', [ 'names' => [ 'index' => 'faq', 'store' => 'faq.new', // etc... ] ]);
Укажите опцию as для определения префикса для каждого имени маршрута.
Route::resource('faq', 'ProductFaqController', [ 'as' => 'prefix' ]);
Это даст вам маршруты, такие как prefix.faq.index , prefix.faq.store и т. Д.