2017-07-07 110 views

回答

1

如果你看看@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