5

admin モジュールだけに Yii Bootstrap エクステンションをロードしようとしていますが、うまくいきません。プリロードするか、何らかの方法で開始する必要があると思います...ありがとう!

    class AdminModule extends CWebModule
    {
        public function init()
        {
            // import the module-level models and components
            $this->setImport(array(
                'admin.models.*',
                'admin.components.*',
                'ext.bootstrap.components.Bootstrap',
            ));
        }

        public function beforeControllerAction($controller, $action)
        {
            if(parent::beforeControllerAction($controller, $action))
            {
                         $this->layout = 'admin';                
                         return true;
            }
            else
                return false;
        }
    }
4

4 に答える 4

10

これを行うには、次の 4 つの方法があります。

  1. アプリの構成 ( protected/config/main.php )に構成を追加します。

    'modules'=>array(
        'admin'=>array(
            'preload'=>array('bootstrap'),
            'components'=>array(
                'bootstrap'=>array(
                    'class'=>'ext.bootstrap.components.Bootstrap'
            )
        ),
    // ... other modules ...
    )    
    
  2. でプリロードしますinit:

    public function init()
    {
        // import the module-level models and components
        $this->setImport(array(
            'admin.models.*',
            'admin.components.*',
            // 'ext.bootstrap.components.Bootstrap', // this will go to app config for components
        ));
        Yii::app()->getComponent('bootstrap');// this does the loading
    }
    
  3. init別の方法でプリロードします。

    public function init()
    {
        // import the module-level models and components
        $this->setImport(array(
            'admin.models.*',
            'admin.components.*',
        ));
    
        $this->configure(array(
                'components'=>array(
                    'bootstrap'=>array(
                        'class'=>'ext.bootstrap.components.Bootstrap'
                    )
                )
        ));
        $this->getComponent('bootstrap');
    }
    
  4. initさらに別の方法でプリロードします。

    public function init()
    {
        // import the module-level models and components
        $this->setImport(array(
            'admin.models.*',
            'admin.components.*',
        ));
    
        $this->configure(array(
                'preload'=>array('bootstrap'),
                'components'=>array(
                    'bootstrap'=>array(
                        'class'=>'ext.bootstrap.components.Bootstrap'
                    )
                )
        ));
        $this->preloadComponents();
    }
    
于 2012-12-12T17:52:24.860 に答える
0
protected/config/main.php

'modules'=>array(
    'admin'=>array(
        'preload'=>array('bootstrap'),
        'components'=>array(
            'bootstrap'=>array(
                'class'=>'ext.bootstrap.components.Bootstrap'
        )
    ),

)    

init でプリロードします:

public function init()
{
    // import the module-level models and components
    $this->setImport(array(
        'admin.models.*',
        'admin.components.*',
        // 'ext.bootstrap.components.Bootstrap', // this will go to app config for components
    ));
    Yii::app()->getComponent('bootstrap');// this does the loading
}

うまくいかない場合は、ブートストラップを使用しているフォームのURLをそのファイルに貼り付けます

<link rel="stylesheet" type="text/css" href="/pojects/fcorginal/assets/b2e88ad5/bootstrap/css/bootstrap.min.css" />
于 2014-06-06T11:25:03.330 に答える