我使用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;
}
}
你有什麼解決方案嗎?
你不會看到它,你需要添加退出或死亡,即echo'foo'; exit; – Inoryy 2012-04-09 11:31:43
它不起作用,因爲Symfony調用FOSUserBundle的registerAction方法,而不是我的。所以,沒有echo()和exit()。 – 2012-04-09 11:35:42
刪除你自己的bundle'routing.yml'(默認爲空)。我使用的是默認值,如果Symfony具有相同的文件名,那麼它真的會從'child'包中讀取* everything *來代替父對象。 – Tatsh 2016-01-13 09:30:24