2017-07-26 10 views
1

動作しない私は、[1]提出symfonyのレジスタコントローラfosuserbundleが

[デフォルトFOSUserBundleコントローラーのオーバーライド] FOSユーザーバンドルのデフォルトコントローラをオーバーライドするには、このチュートリアルに従うことを試みたと私は、コントローラを変更することができますが、私は、ボタンを提出しようとすると、それは動作しません:

<?php 
// src/AppBundle/Controller/RegistrationController.php 

namespace AppBundle\Controller; 

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

class RegistrationController extends BaseController 
{ 
    public function registerAction(Request $request) 
    { 
     /** @var $formFactory FactoryInterface */ 
     $formFactory = $this->get('fos_user.registration.form.factory'); 
     /** @var $userManager UserManagerInterface */ 
     $userManager = $this->get('fos_user.user_manager'); 
     /** @var $dispatcher EventDispatcherInterface */ 
     $dispatcher = $this->get('event_dispatcher'); 

     $user = $userManager->createUser(); 
     $user->setEnabled(true); 

     $event = new GetResponseUserEvent($user, $request); 
     $dispatcher->dispatch(FOSUserEvents::REGISTRATION_INITIALIZE, $event); 
var_dump('prova'); 

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

    $form = $this->createForm(RegistrationType::class, $user, [ 
    'method' => 'POST', 
]); 

    //$form = $formFactory->createForm(); 
    //$form->setData($user); 

    $form->handleRequest($request); 

    if ($form->isSubmitted()) { 
     var_dump($form); 
     if ($form->isValid()) { 
      var_dump($form); 
       } 
     } 

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

のvar_dumpを仕事を提出したが

if ($form->isSubmitted()) { 
      if ($form->isValid()) { 

内部のvar_dumpが動作しないの前に。私はロジックを提出することは別のコードにあると信じていますが、私はそれをどのように変更できるのか分かりません。

どのように可能かわかりません。私を助けてください ?

答えて

0

フォームにformTypeを設定していないため、何も処理できません。

$form = $this->createForm(YourFormType::class, $user, [ 
     'method' => 'POST', 
]); 

幸運:

は、以下に簡単な例です! :)

+0

ありがとうございました...私はこれでコードを変更しますが、まだ動作しません... $ form = $ this-> createForm(RegistrationType :: class、$ user、[ 'メソッド'=>' POST '、 ]); // $ form = $ formFactory-> createForm(); // $ form-> setData($ user); $ form-> handleRequest($ request); if($ form-> isSubmitted()){ var_dump($ form); if($ form-> isValid()){ var_dump($ form); –

+0

OK、リクエスト方法plsを確認できますか? var_dump($ request-> getMethod()); – fireaxe

+0

あなたは正しいです!なぜ私は知りませんが、「手に入れて」方法です –

関連する問題