1

いくつかのyiiコアファイル(具体的には、CGridColumn.phpとCController.php)をオーバーライドする必要があります。これらのクラスが、オーバーライドまたは拡張するコアファイルではなく、アプリケーションで参照されていることを確認する必要があります。どうすればよいですか?それはかなり単純でなければなりませんが、それを行うための文書化された「正しい」方法を見つけることができないようです。

4

2 に答える 2

5

ベースコントローラーを拡張したい場合:

  1. protected/components ディレクトリに Controller.php を作成します。

    class Controller extends CController
        {
        public $newProperty;
    
        public function newMethod()
        {
        ...
        }
    }
    
  2. Controller.php が構成にインポートされていることを確認します。

    'import' => array(
        ...
        'application.components.Controller',
        ...
    ),
    
  3. CController ではなく Controller からコントローラーを拡張します。

    class ExampleController extends Controller {
        ...
    }
    

CGridColumn を拡張する場合、1 と 2 の手順は同じですが、カスタム クラスで元のクラスをインポートすることを忘れないでください。

    Yii::import('zii.widgets.grid.CGridColumn');

    class TestColumn extends CGridColumn
    {
        ...
    }

そして、それをCGridViewの列配列で使用するだけです

    'columns' => array(
        array(
            'class' => 'TestColumn',
        ),  
    ),
于 2012-06-29T05:03:57.350 に答える
2

より良いカスタマイズを可能にする共通クラスの拡張

http://www.yiiframework.com/wiki/121/extending-common-classes-to-allow-better-customization/

于 2012-06-29T09:33:33.943 に答える