簡體   English   中英

Symfony FOSUserBundle

[英]Symfony FOSUserBundle

我正在嘗試重新聲明FOSUserBundle ProfileController,但是當我這樣做時,什么都沒有改變。 我遵循了指令https://symfony.com/doc/current/bundles/FOSUserBundle/overriding_controllers.html並創建:/src/UserBundle/UserBundle.php

    <?php

namespace UserBundle;

use Symfony\Component\HttpKernel\Bundle\Bundle;

class UserBundle extends Bundle
{
  public function getParent()
  {
    return 'FOSUserBundle';
  }
}

和/src/UserBundle/Controller/ProfileController.php

<?php
namespace UserBundle\Controller;

use Symfony\Component\HttpFoundation\Request;
use FOS\UserBundle\Controller\ProfileController as BaseController;


class ProfileController extends BaseController
{
  public function editAction(Request $request)
  {
    var_dump("I am HERE");exit();

    return $request;
  }
}

我做錯了什么,可以給個建議嗎?

在Symfony 3中,不再使用捆綁繼承,如@Pavel Alazankin所指出的那樣。 要覆蓋FOSUser控制器,您需要:

  1. 刪除USerBundle中的函數getParent()
  2. 在此處找出FOSUserBundle使用的路由並在控制器中覆蓋它們
 <?php namespace UserBundle\\Controller; use Symfony\\Component\\HttpFoundation\\Request; use FOS\\UserBundle\\Controller\\ProfileController as BaseController; use Symfony\\Component\\EventDispatcher\\EventDispatcherInterface; use FOS\\UserBundle\\Form\\Factory\\FactoryInterface; use FOS\\UserBundle\\Model\\UserManagerInterface; class ProfileController extends BaseController { public function __construct(EventDispatcherInterface $eventDispatcher, FactoryInterface $formFactory, UserManagerInterface $userManager) { parent::__construct($eventDispatcher, $formFactory, $userManager); } /** * override FOSUserBundle * @param Request $request * * @Route( * "/login", * name="fos_user_profile_edit" * ) * @Method("GET|POST") * * @return Response */ public function editAction(Request $request) { var_dump("I am HERE");exit(); return $request; } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM