php666
@php666
PHP-макака

Зачем нужен namespace в группе роутов?

Сижу код проекта рефактор, доки читал, не понял:
Другой типичный пример использования групп роутов — назначение одного пространства имён PHP для группы контроллеров, используя параметр namespace в массиве группы:

Route::namespace('Admin')->group(function () {
// Controllers Within The "App\Http\Controllers\Admin" Namespace
});
Помните, по умолчанию RouteServiceProvider включает ваши файлы роутов в группу пространства имён, позволяя вам регистрировать роуты контроллера без указания полного префикса пространства имён App\Http\Controllers. Поэтому нам надо указать лишь ту часть пространства имён, которая следует за базовым пространством имён App\Http\Controllers.


Был код роутов и их группировка. Всё работало, если использовать use.
Изменил согласно тому, как понял:

// закоментировал use
//use App\Http\Controllers\Backend\Docflow\Document\DocumentController;

Route::group(
    // Прописал путь к namespace
    ['namespace' => 'App\Http\Controllers\Backend\Docflow\Document', 
    'as' => 'document.', 
    'prefix' => 'document'], function () {
        Route::get('edit/{document}', [DocumentController::class, 'edit'])->name('edit');
}

Ошибка:
Target class [DocumentController] does not exist.

ЧЯДНТ?
  • Вопрос задан
  • 342 просмотра
Решения вопроса 1
@jazzus
Помните, по умолчанию RouteServiceProvider включает ваши файлы роутов в группу пространства имён, позволяя вам регистрировать роуты контроллера без указания полного префикса пространства имён App\Http\Controllers.

Route::namespace('Backend\Docflow\Document')
     ->name('document.')
     ->prefix('document')
     ->group(function () {
  Route::get('edit/{document}', 'DocumentController@edit')->name('edit');
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы