簡體   English   中英

Symfony Fos用戶捆綁控制器覆蓋

[英]Symfony Fos User Bundle Controller overriding

嗨,我試圖覆蓋FOSUserBundle注冊控制器,以便具有兩種類型的用戶和兩種不同的形式

我有錯誤:

Type error: Too few arguments to function Utilisateurs\UtilisateursBundle\Controller\RegistrationController::__construct(), 0 passed in /Users/Antoine/Desktop/HC/Symfony/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Controller/ControllerResolver.php on line 195 and exactly 4 expected

這是我的控制器

namespace Utilisateurs\UtilisateursBundle\Controller;


class RegistrationController extends BaseController
{


/**
 * @param Request $request
 *
 * @return Response
 */
public function registerAction(Request $request)
{
    $user = $this->userManager->createUser();
    $user->setEnabled(true);
    $user->addRole("ROLE_PRO");

    $event = new GetResponseUserEvent($user, $request);
    $this->eventDispatcher->dispatch(FOSUserEvents::REGISTRATION_INITIALIZE, $event);

    if (null !== $event->getResponse()) {
        return $event->getResponse();
    }

    $form = $this->formFactory->create(new ProRegistrationType());
    $form->setData($user);

    $form->handleRequest($request);

    if ($form->isSubmitted()) {
        if ($form->isValid()) {
            $event = new FormEvent($form, $request);
            $this->eventDispatcher->dispatch(FOSUserEvents::REGISTRATION_SUCCESS, $event);

            $this->userManager->updateUser($user);

            if (null === $response = $event->getResponse()) {
                $url = $this->generateUrl('fos_user_registration_confirmed');
                $response = new RedirectResponse($url);
            }

            $this->eventDispatcher->dispatch(FOSUserEvents::REGISTRATION_COMPLETED, new FilterUserResponseEvent($user, $request, $response));

            return $response;
        }

        $event = new FormEvent($form, $request);
        $this->eventDispatcher->dispatch(FOSUserEvents::REGISTRATION_FAILURE, $event);

        if (null !== $response = $event->getResponse()) {
            return $response;
        }
    }

    return $this->render('@FOSUser/Registration/register.html.twig', array(
        'form' => $form->createView(),
    ));
}

}

我查看了focuserbundle文檔,他們只是在談論1.3版本的FOSuserbundle中的重寫控制器,感謝您的幫助

要覆蓋FosUserBundle控制器,您應該聲明FOSUserBundle的子代。 我不明白為什么要有構造函數? 您有容器在容器中,您擁有所需的一切。

暫無
暫無

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

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