私はFOSUserBundleを使用しています。彼のregisterActionコントローラをオーバーライドしたいと思います。 FOSUserBundleのコントローラーのオーバーライドに関連する文書を読んだが、機能しません。コントローラーに小さなメッセージをエコーすると、テンプレートには印刷されません。Symfony2コントローラオーバーライド
私はFOSUserBundleから私のバンドルを継承する:ここで
は私が選んだ道ですnamespace Jheberg\MembersBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class JhebergMembersBundle extends Bundle
{
public function getParent()
{
return 'FOSUserBundle';
}
}
そして私は私のバンドルのコントローラディレクトリにRegistrationController.php
という名前のファイルでのRegisterActionを上書き:
namespace Jheberg\MembersBundle\Controller;
use FOS\UserBundle\Controller\RegistrationController as BaseController;
class RegistrationController extends BaseController
{
public function registerAction()
{
echo 'foo';
$response = parent::registerAction();
// do custom stuff
return $response;
}
}
解決策はありますか?
このように表示されない場合は、exitまたはdieを追加する必要があります。つまり、echo 'foo'; exit; – Inoryy
symfonyは私のものではなくFOSUserBundleのregisterActionメソッドを呼び出すため、動作しません。したがって、echo()もexit()もありません。 –
あなた自身のバンドルの 'routing.yml'(デフォルトでは空白です)を削除してください。私はデフォルトを使用していて、Symfonyは同じファイル名を持つ場合、親の代わりに「子」バンドルから*すべて*を実際に読み込みます。 – Tatsh