переопределение ChangePasswordFOSUser1Controller печатает код на странице входа

В настоящее время я разрабатываю приложение на Symfony 2.5.0, используя FOSUSerBundle, SonataAdminBundle и SonataUserBundle. Я расширил FOSUserbundle, поэтому мой AppKernel.php имеет new Sonata\UserBundle\SonataUserBundle('FOSUserBundle'), и я также создал свой собственный Application\Sonata\UserBundle с помощью Easy Extends.

В моем Application\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);
  }
}

Проблема в том, что всякий раз, когда я захожу на свою страницу входа, я вижу код моего контроллера, напечатанный дважды в «разделе заголовка», прямо перед формой входа.

Пробовал очищать кеш и ВОИЛЯ! кеш очищается, но один и тот же код печатается дважды в моей оболочке. (да, я работаю с оболочкой)

Я снова и снова получаю «ошибку» при очистке кеша, но на моей странице входа она исчезает после двух обновлений страницы.

Кто-нибудь пробовал переопределить этот контроллер или получил аналогичную ошибку? (жаль, что ни у кого не было)

Спасибо за помощь!


person user3779536    schedule 26.06.2014    source источник


Ответы (1)


<?php

Отсутствует в ChangePasswordFOSUser1Controller.php Код был определен как интерпретируемый и поэтому напечатан как обычный текст на каждой HTML-странице.

person user3779536    schedule 30.06.2014