Привет, я иду по очень простому вопросу (я думаю), но я не нашел ответа или похожего случая. Я использую 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)
Я надеюсь, что дал вам всю информацию, спасибо за вашу помощь и извините за мой английский!






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