0

我正在使用FOSUSerBundle,SonataAdminBundle和SonataUserBundle在Symfony 2.5.0上開發應用程序。 我已經擴展了FOSUserbundle,所以我的AppKernel.php有new Sonata\UserBundle\SonataUserBundle('FOSUserBundle'),我也使用Easy Extends生成了我自己的Application \ Sonata \ UserBundle。覆蓋ChangePasswordFOSUser1Controller打印登錄頁面上的代碼

在我的應用\ SonataUserBundle,我已經重寫了ChangePasswordFOSUser1Controller像這樣:

use Symfony\Component\DependencyInjection\ContainerAware; 
use Symfony\Component\HttpFoundation\RedirectResponse; 
use Symfony\Component\Security\Core\Exception\AccessDeniedException; 
use Symfony\Component\HttpFoundation\Request; 
use FOS\UserBundle\Model\UserInterface; 
use Sonata\UserBundle\Controller\ChangePasswordFOSUser1Controller as BaseController; 

class ChangePasswordFOSUser1Controller extends BaseController 
{ 
    public function changePasswordAction() 
    { 
    $user = $this->container->get('security.context')->getToken()->getUser(); 
    if (!is_object($user) || !$user instanceof UserInterface) 
     { 
     throw new AccessDeniedException('This user does not have access to this section.'); 
     } 
    $form = $this->container->get('fos_user.change_password.form'); 
    $formHandler = $this->container->get('fos_user.change_password.form.handler'); 

    $process = $formHandler->process($user); 
    if ($process) 
     { 
     $this->setFlash('fos_user_success', 'change_password.flash.success'); 

     if ($user->getFirstConnection()) 
      $user->setFirstConnection(false); 
     return new RedirectResponse($this->getRedirectionUrl($user)); 
     } 

    return $this->container->get('templating')->renderResponse('SonataUserBundle:ChangePassword:changePassword.html.'.$this->container->getParameter('fos_user.template.engine'), 
                   array('form' => $form->createView())); 
    } 

    /**                                                         
    * {@inheritdoc}                                                      
    */ 
    protected function getRedirectionUrl(UserInterface $user) 
    { 
    return $this->container->get('router')->generate('front_home'); 
    } 

    /**                                                         
    * @param string $action                                                    
    * @param string $value                                                    
    */ 
    protected function setFlash($action, $value) 
    { 
    $this->container->get('session')->getFlashBag()->set($action, $value); 
    } 
} 

的問題是:每當我去我的登錄頁面,我看到我的控制器代碼中的「標題部分」兩次印刷,就在登錄表單之前。

我試過清理我的緩存和VOILA!緩存被清除,但相同的代碼會在我的shell中打印兩次。 (是的,我使用shell)

當清除緩存時,我一遍又一遍地得到「bug」,但在登錄頁面上它會在兩次頁面刷新後消失。

有沒有人試圖覆蓋該控制器或得到類似的錯誤? (將是一個沒有人的恥辱)

Thx的幫助!

回答

0
<?php 

上缺少ChangePasswordFOSUser1Controller.php 的代碼被定義爲可解釋等打印爲每一HTML網頁上的純文本。