spooky_2020
@spooky_2020
А меня Сережа зовут.

В роутах Laravel больше нельзя указывать простое (короткое) название контроллера?

Знакомлюсь с Laravel по книжке Laravel. Полное руководство. 2-е издание, в ней описана версия фреймворка 5.8 и указанно, что имена контролеров в роутах можно указывать без полного пространства имен, мол Laravel знает где их искать и добавляет namespace автоматически.
Я установил Laravel версии 10+ и там короткие имена не работают - приходится указывать полное название.
В доках к версии 8+ я увидел что контроллеры там указывают используя такой синтаксис:
Route::get('/user/{id}', [UserController::class, 'show']);
Это теперь правильный путь?
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
По умолчанию неймспейсы для контроллеров в роутах отключены.
Но вы можете их добавить сами в RouteServiceProvider
Route::middleware('web')
                ->namespace('App\\Http\\Controllers')
                ->group(base_path('routes/web.php'));


Однако я этого не рекомендую.
Используя для работы хорошую IDE вы также просто будете писать имя контроллера, а IDE подскажет какой класс нужно вставить.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sanes
@Sanes
Указывайте полный путь или подключайте через use
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы