#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 часа, чтобы это исправить