1

beforeActionメソッド(Yii Framework)内にスクリプトを登録したいです。しかし、すべてのコントローラーでそのメソッドを繰り返したくないので、すべてのコントローラーが継承する beforeAction() を作成するにはどうすればよいですか?

どうも、

4

3 に答える 3

0

デフォルトの yiic によって生成された yii webapp には、project/protected/components/Controller.phpに Controller クラスがあり、アプリ内のすべてのコントローラーはこの Controller を継承します。

そのクラスは、beforeAction.

編集: yiic を使用しておらず、このデフォルトの Controller クラスがない場合は、CController から拡張された新しいクラスを追加して、この新しいクラスからコントローラーを拡張しても問題ありません。この親コントローラー クラスで、コントローラーのすべての共通機能を保持できます。

于 2012-11-26T12:59:16.613 に答える
0

components ディレクトリ内に BaseController.php を作成する必要があります。このファイル内で、BaseController を CController から継承します。そこに beforeAction を書きます。この後、BaseController からすべてのコントローラーを継承する必要があります。

于 2012-11-26T13:00:02.163 に答える
0

1) CController で拡張された共通の親コントローラーを作成します (例 SomeController)

2) このコントローラーの beforeAction() にスクリプトを登録する (例 SomeController)

3) SiteController または Module Controller のこのコントローラーを拡張します。

<?php

class SomeController extends CController
{
    public function beforeAction()
    {
        // Your Register Script
    }
}


class SiteController extends SomeController
{
    // public function actionIndex
}
于 2012-11-26T13:04:54.983 に答える