1
当你访问/配置文件路径它会带你到一个默认的配置文件页面。FosUserBundle:如何覆盖自定义路径的默认/配置文件路径?
我做了更改,因此当您访问配置文件时,需要向该url添加一个id以访问正确的页面。
但是,/ profile仍然会转到默认页面,我该如何禁用此路由或使其进入自定义路径?
在此先感谢。
当你访问/配置文件路径它会带你到一个默认的配置文件页面。FosUserBundle:如何覆盖自定义路径的默认/配置文件路径?
我做了更改,因此当您访问配置文件时,需要向该url添加一个id以访问正确的页面。
但是,/ profile仍然会转到默认页面,我该如何禁用此路由或使其进入自定义路径?
在此先感谢。
如果你看看@FOSUserBundle/Resources/config/routing/profile.xml
,你会看到下面的路线。您可以在自己的路由
<route id="fos_user_profile_show" path="/" methods="GET">
<default key="_controller">FOSUserBundle:Profile:show</default>
</route>
<route id="fos_user_profile_edit" path="/edit" methods="GET POST">
<default key="_controller">FOSUserBundle:Profile:edit</default>
</route>
使用相同的名称在自己的routing.yml覆盖任何路由(或其他配置)你会简单地覆盖这样的:
fos_user_profile_show:
path: /profile/{id}
defaults: { _controller: AppBundle:Profile:show }
fos_user_profile_edit:
path: /profile/edit/{id}
defaults: { _controller: AppBundle:Profile:edit }
注意,最可能您不再使用默认的ProfileController
,而是您自己的ProfileController
扩展了FOSUserBundle ProfileController
。这就是为什么我也将控制器更改为AppBundle:Profile:edit
,但显然这需要匹配您的代码。
还要注意{id}
需要在你的代码来实现,例:
public function showAction(Request $request, $id)
在此还看到一个更详细的解答(另一个途径):How to customize FOS UserBundle URLs