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