Проблема с URL-адресом symfony 3

Привет, я иду по очень простому вопросу (я думаю), но я не нашел ответа или похожего случая. Я использую Symfony 3 и пытаюсь создать второе меню для своей панели администрирования.

Однако у меня проблема с тем, как я должен объявить относительный URL-адрес в моем "href". Для своего главного меню я делал вот так

{{ url ( 'admin' ) }} 

и это сработало. Дело в том, что теперь у меня в URL есть подпапки и много уровней.

URL-адрес, который я пытаюсь достичь, - это myapp / admin / gameadmin, этот URL-адрес работает, когда я иду по нему, но когда я пытаюсь поместить его в 'href', у меня появляется сообщение об ошибке, в котором говорится, что маршрут не работает.

я так объявил ->

{{ url(admin/gameadmin) }}

Я пробовал с другим персонажем -> admin: gameadmin, admin \ gameadmin ... и т.д. и с путем вместо URL-адреса, я не знаю, если это не лучший способ объявить его, или у меня проблемы с моими контроллерами.

В моем пакете это организовано так:

   ->Controllers(folder)
        ->admin(folder) (You can also find my main controllers on this level)
           ->admingamecontroller (Where the page I try to reach is  routed)

Я надеюсь, что дал вам всю информацию, спасибо за вашу помощь и извините за мой английский!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
77
1

Ответы 1

Параметр url - это не URL-адрес как таковой (например: admin / gameadmin), это имя маршрута, определенное в вашем файле routing.yaml или в аннотации вашего контроллера.

Если ваше действие выглядит примерно так:

/**
 * @Route("/admin/gameadmin", name = "gameadmin")
 */
public function gameAdminAction()
{
    ...
}

Затем, чтобы сгенерировать маршрут, вам нужно сделать следующее:

{{ url('gameadmin') }}

Таким образом, все ссылки на вашем веб-сайте будут обновлены, если вы измените URL-адрес gameadmin, если вы не измените имя маршрута.

Предлагаю вам прочитать эту документацию на сайте Symfony: https://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/routing.html

Обновлено: как указано user254319, если вы не используете аннотации, вам придется отредактировать файл конфигурации routing.yaml.

gameadmin:
    path:       /admin/gameadmin
    controller: App\Controller\Admin\AdminGameController::gameadminAction

Имя маршрута - это ключ yaml: gameadmin.

Связанная документация Symfony: https://symfony.com/doc/current/routing.html

Просто чтобы закончить ответ. Сначала расширение url twig генерирует абсолютные URL. Относительные URL-адреса могут быть созданы расширение пути. Во-вторых: не все используют аннотации. Эта ссылка может помочь больше: symfony.com/doc/current/routing.html

Tomsgu 30.05.2018 10:54

Спасибо ! Я знаю, что это было легко, но я не смог найти хорошего ответа, я забыл, что URL-адрес использовал имя, а не маршрут.

julien mantovani 31.05.2018 20:51

Другие вопросы по теме