Маршрут не найден

#symfony5

#symfony5

Вопрос:

Я импортировал следующий проект Gentella-admin-Symfony-5.

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

Я попытался создать маршрут с аннотациями. Но все не удалось. Мой демоконтроллер создается таким образом

 namespace AppController;

use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAnnotationRoute;
use SymfonyBundleFrameworkBundleControllerAbstractController;

class HomeController extends AbstractController
{
    /**
     *
     * @Route("/number")
     */
    public function number(): Response
    {
        $number = random_int(0, 100);
        
        return $this->render('home/index.html.twig', [
            'number' => $number,
        ]);
    }
    
    /**
     *
     * @Route("/")
     */
    public function index(): Response
    {
        $number = "0815";
        
        return $this->render('home/index.html.twig', [
            'number' => $number,
        ]);
    }
}
 

Но вызов с:
https://localhost:8000/number
просто заканчивается: маршрут не найден для «GET / number»

страница по умолчанию: https://localhost:8000 / заканчивается пустой страницей Symfony, и профилировщик также показывает: маршрут не найден для «GET /»

Я почти новичок в symfony (в любом случае, я имею опыт работы с PHP, но мне нужно изучить symfony прямо сейчас).

Для перекрестных проверок я создал новый проект с composer с использованием аннотации из symfony route docs (страница счастливого номера). Там все работало нормально.

Это то, что сводит меня с ума, и почему я не могу создать маршрут FE по умолчанию.

Может кто-нибудь мне помочь?

Заранее спасибо

РЕДАКТИРОВАТЬ: до сих пор я выяснил, что проблема вызвана языковым стандартом по умолчанию в routes.yaml.

 controllers:
    resource: '../src/Controller/'
    type: annotation
    prefix: /{_locale}
    requirements:
        _locale: '%app_locales%'
    defaults:
        _locale: '%locale%'
 

Когда я удалю все, начиная с префикса, я смогу получить доступ к своему дому прямо сейчас.

Теперь мне нужна помощь «только», о том, как найти, чтобы исправить, что к моему дому можно получить доступ таким же образом.

Ответ №1:

Вы можете попробовать отладить маршруты.

 php bin/console debug:router
 

Вот ссылка на документацию: Router Debuggen

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

1. Спасибо за ваш ответ. После того, как я проанализировал проект, я увидел, что существует EventSubscriber для перенаправления вызовов по пути администратора в RedirectToLocaleSubscriber.php с локализацией в качестве префикса. Итак, мой обходной путь заключался в том, чтобы расширить его с помощью моей новой созданной папки для интерфейса. В любом случае. Мне было интересно, почему маршрут к root (/) не анализируется правильно. И я видел маршруты отладки, и для меня все выглядело нормально. Я не уверен, связано ли это с содержанием маршрутов. yaml, где префикс определяется как: prefix: /{_locale} И как изменить и обработать исключения для него.