Контроллер ресурсов в названной группе маршрутов вызывает проблему с названием маршрута?

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

Route::group(['middleware' => 'ldapauth', 'namespace' => 'Admin', 'prefix' => 'admin', 'as' => 'admin.'], function () {
    // other routes ...

    Route::resource('institution', 'InstitutionController');

});

И я получаю дополнительного администратора для имен маршрутов, принадлежащих маршрутам контроллера ресурсов, см. Здесь:

+-------------------------------------+--------------------------------+
| URI                                 | Name                           |
+-------------------------------------+--------------------------------+
| admin                               | admin.dashboard                |
| admin/email/{id}                    | admin.email.show               |
| admin/institution                   | admin.admin.institution.index  |
| admin/institution                   | admin.admin.institution.store  |
| admin/institution/contact           | admin.institution.contact      |
| admin/institution/create            | admin.admin.institution.create |
| admin/institution/{institution}     | admin.                         |
| admin/institution/{institution}     | admin.admin.institution.destroy|
| admin/institution/{institution}     | admin.admin.institution.update |
| admin/institution/{institution}     | admin.admin.institution.show   |
| admin/institution/{institution}/edit| admin.admin.institution.edit   |

Любое руководство будет оценено. Нужно ли мне удалить контроллер ресурсов за пределами группы, а затем повторно применить промежуточное ПО и т. Д.?

Изменить: я хотел бы сохранить имя 'as' => 'admin.' в группе маршрутов, поэтому мне не нужно добавлять префиксы ко всем маршрутам в группе. Так возможно ли это?


person haakym    schedule 08.10.2015    source источник
comment
Попробуйте удалить 'as' => 'admin.'   -  person aldrin27    schedule 08.10.2015
comment
Вероятно, возникает вопрос: Могу ли я иметь ресурс маршрута в названной группе маршрутов? Я хочу сохранить его там, чтобы мне не нужно было добавлять префиксы ко всем другим моим маршрутам, которые не являются ресурсами маршрута.   -  person haakym    schedule 08.10.2015
comment
Просто попробуйте удалить приставку и увидите разницу.   -  person aldrin27    schedule 08.10.2015
comment
Удаление prefix означает, что мне нужно добавить admin ко всем URL-адресам обычных маршрутов, поэтому это не решает проблему. Я почти уверен, что это невозможно.   -  person haakym    schedule 08.10.2015


Ответы (1)


Лучший способ справиться с этим - передать промежуточное ПО в контроллер и добавить в контроллер конструкцию, которая будет выглядеть примерно так:

class InstitutionController extends Controller {


    public function __construct()
    {
        $this->middleware('ldapauth');
    }

}

После этого вы можете создать ресурс:

Route::resource('admin/institution', 'Admin\InstitutionController');

Теперь вы можете получить доступ к маршруту, используя:

{!! Form::open(['url' => route('admin.institution.contact')]) !!}

Кроме того, вы можете увидеть все текущие маршруты с помощью php artisan route:list. И вы видите аналогичный вывод маршрутизации.

person David Aguilar    schedule 10.10.2015