symfony 3网址问题

时间:2018-05-30 07:46:07

标签: php symfony url

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

但是,我有一个问题,我必须在我的" href"中声明相对网址,对于我过去常用的主菜单

{{ url ( 'admin' ) }} 

它有效。事实是,现在我的子网站中有子文件夹和多个级别。

我尝试访问的网址是myapp / admin / gameadmin,这个网址在我正在进行时工作,但是当我尝试将其放入' href'我有一条错误消息,指出路线无效。

我宣布它是这样的 - >

{{ url(admin/gameadmin) }}

我试过不同的角色 - >管理员:gameadmin,admin \ gameadmin ...等用路径而不是网址我不知道它是不是宣告它的好方法,或者我的控制器是否有问题。

在我的捆绑中,它的组织方式如下:

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

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

1 个答案:

答案 0 :(得分:2)

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

如果您的行为是这样的:

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

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

{{ url('gameadmin') }}

通过这样做,只要您不更改路线名称,如果您更改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