无法扩展奏鸣曲 symfony 的 ProfileFOSUser1Controller

Posted

技术标签:

【中文标题】无法扩展奏鸣曲 symfony 的 ProfileFOSUser1Controller【英文标题】:Unable to extend ProfileFOSUser1Controller of sonata symfony 【发布时间】:2018-06-18 06:59:44 【问题描述】:

我在 symfony sonata 管理员工作。我正在尝试扩展 ProfileFOSUser1Controller 但无法扩展它。我也试过清除缓存但没有用?这是我的控制器代码:

<?php

  namespace Application\Sonata\UserBundle\Controller;

  use Sonata\UserBundle\Controller\ProfileFOSUser1Controller as BaseController;
 /**
 * Overwrite methods from the ProfileFOSUser1Controller if you want to change the behavior
 * for the current profile
 *
 */

 class ProfileUserController extends BaseController
 


  /**
  * @throws AccessDeniedException
  *
  * @return Response|RedirectResponse
  */
  public function editAuthenticationAction()
  
    echo "here"; die;
    $user = $this->getUser();
    if (!is_object($user) || !$user instanceof UserInterface) 
        throw new AccessDeniedException('This user does not have access to this section.');
    

    $form = $this->get('sonata.user.authentication.form');
    $formHandler = $this->get('sonata.user.authentication.form_handler');

    $process = $formHandler->process($user);
    if ($process) 
        $this->setFlash('sonata_user_success', 'profile.flash.updated');

        return $this->redirect($this->generateUrl('sonata_user_profile_show'));
    

    return $this->render('SonataUserBundle:Profile:edit_authentication.html.twig', [
        'form' => $form->createView(),
    ]);
  


 

【问题讨论】:

【参考方案1】:

看看这里How to Use Bundle Inheritance to Override Parts of a Bundle 我认为您的控制器名称应该是 ProfileFOSUser1Controller

【讨论】:

【参考方案2】:

此问题已解决,我已将类名更改为与基类相同的名称:将“ProfileUserController”更改为“ProfileFOSUser1Controller”。现在它工作正常。

【讨论】:

以上是关于无法扩展奏鸣曲 symfony 的 ProfileFOSUser1Controller的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Symfony 4.1 上安装奏鸣曲/电子商务

无法使用 symfony 5 安装奏鸣曲管理员

Symfony2 - 扩展或替换 SonataUserBundle 注册表单

Symfony2,奏鸣曲:摆脱 UserBundle 中不必要的字段

无法使用作曲家设置奏鸣曲

我无法使用 symfony 5 安装 sonataAdminBundle