【问题标题】:disable layout for sfDoctrineGuardPlugin in Symfony在 Symfony 中禁用 sfDoctrineGuardPlugin 的布局
【发布时间】:2010-03-02 14:18:54
【问题描述】:

如何防止上述插件的登录表单使用默认布局?我知道this question,但这个答案对我不起作用。对于初学者,模块目录中没有登录模块,可能插件以不同的方式处理它,我不知道。刚学symfony。在此先感谢:)

【问题讨论】:

    标签: php symfony1 symfony-1.4


    【解决方案1】:

    如果您只想设置不同的布局,则需要添加一个名为“sfGuardAuth”的模块(只需手动创建)。为此,在 /config/ 目录中,像任何其他模块一样更改 view.yml 中的布局。解释如下:

    http://www.symfony-project.org/plugins/sfDoctrineGuardPlugin/4_0_0

    ...在“自定义 sfGuardAuth 模块操作”部分下。

    但是,如果您想在另一个现有页面上“嵌入”您的登录表单,您可以将登录转换为一个组件 - 这意味着它使用它所在页面的现有布局。

    自定义模块中的组件操作:

    public function executeSigninLightbox(sfWebRequest $request)
    {
        $class = sfConfig::get('app_sf_guard_plugin_signin_form', 'sfGuardFormSignin'); 
        $this->form = new $class();
    }
    

    ... 像所有组件一样使用部分作为其视图。部分现在可以像标准登录页面一样访问 $form 。这部分将被称为“_signinLightbox”。

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      目前无法通过自定义 view.yml 为某些 sfGuardAuth 操作设置自定义布局。
      我就是这样做的。
      这是我的apps/backend/modules/sfGuardAuth/actions/actions.class.php

      <?php
      
      require_once(sfConfig::get('sf_plugins_dir').'/sfDoctrineGuardPlugin/modules/sfGuardAuth/lib/BasesfGuardAuthActions.class.php');
      
      class sfGuardAuthActions extends BasesfGuardAuthActions
      {
          public function preExecute()
          {
              $layout = $this->getActionName() == sfConfig::get('sf_login_action') ? 'sfGuardLayout' : $this->getLayout();
              $this->setLayout($layout);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-18
        • 1970-01-01
        相关资源
        最近更新 更多