首页 > 解决方案 > symfony 3 网址问题

问题描述

嗨,我来回答一个非常简单的问题(我认为),但我没有找到答案或类似的案例。我正在使用 symfony 3 并尝试为我的管理面板构建第二个菜单。

但是,我有一个关于如何在“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)

我希望我给了你所有的信息,谢谢你的帮助,对不起我的英语!

标签: phpsymfonyurl

解决方案


url参数不是 url 本身(即:admin/gameadmin),这是在您的routing.yaml文件或控制器注释中定义的路由名称。

如果您的操作是这样的:

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

然后,要生成路线,您必须这样做:

{{ url('gameadmin') }}

通过这样做,只要您不更改路由名称,您网站上的所有链接都会在您更改游戏管理员 url 时保持最新状态。

我建议您在 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


推荐阅读