Неперехваченное исключение PHP SymfonyComponent HttpKernelExceptionNotFoundHttpException: «Не найден маршрут для «GET /»

#php #symfony4

#php #symfony4

Вопрос:

Я только начал следовать руководству symfony 4, я настроил весь проект с помощью composer и получил индексный файл, отображаемый в браузере http://127.0.0.1:8000 /

Я застрял на самом первом примере маршрутизатора / контроллера / просмотра, маршрут не работает должным образом или вообще. Я всегда получаю ошибку 404.

1:

введите описание изображения здесь

2:

введите описание изображения здесь

3:

введите описание изображения здесь

 <?php


namespace AppController;

use SymfonyComponentHttpFoundationResponse;

class LuckyController
{
    public function number()
    {
        $number = random_int(0, 100);

        return new Response(
            '<html><body>Lucky number: '.$number.'</body></html>'
        );
    }
}
  
 
# the "app_lucky_number" route name is not important yet
app_lucky_number:
  path: /lucky/number
  controller: AppControllerLuckyController::number

  

У меня закончились идеи, я везде искал в Google и не нашел решения.

Ответ №1:

Убедитесь, что ваш контроллер находится на правильном пути src/Controller/

Пример

 namespace AppController;

use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentRoutingAnnotationRoute;

class LuckyController extends AbstractController
{

  public function number()
  {
    echo __LINE__;die();
  }
}
  

Проверьте config/routes.php , чтобы файлы имели правильные маршруты

 namespace SymfonyComponentRoutingLoaderConfigurator;

use AppControllerLuckyController;

return function (RoutingConfigurator $routes) {
   // Matches /lucky exactly
   $routes->add('lucky_number', '/lucky')
      ->controller([LuckyController::class, 'number'])
   ;

};
  

OR

Измените свой YAML на

 # the "app_lucky_number" route name is not important yet
app_lucky_number:
path: /lucky
controller: AppControllerLuckyController::number
  

После этого перейдите по этому URL-адресу http://127.0.0.1:8000/lucky

Комментарии:

1. Я только что заметил, что я не расширялся из AbstractController, но в итоге ничего не изменилось. контроллер находится в этом каталоге, и у меня нет routes.php , это файл yaml, и я разместил его на post

2. Точно такая же ошибка, она должна быть в самой платформе, так как мой код точно такой, как указано в руководстве

3. @Moelanz какой URL-адрес вы просматриваете?

4. в вашем контроллере внутри функции что-то повторяет и получает доступ к 127.0.0.1:8000 / lucky

5. Ничего не изменилось вообще

Ответ №2:

В вашем навигаторе вам нужно написать «lucky» после 127.0.0.1:800 У меня те же проблемы, и мне потребовалось 2 часа, чтобы это исправить