0

オブジェクトを管理するためのコントローラー(A)があります。コントローラーには$this->Auth->user(id)、オブジェクトへのアクセスが許可されているかどうかを確認するメソッドがあります。
これは、関連するモデル($this->ModelA->ModelB->...)にアクセスすることによって行われます。

ここで、別のコントローラー(C)で、同じ問題をチェックする必要があります(一部の内部ロジックについて)。ただし、このコントローラーのモデルはModelBに関連付けられていません。
だから、私の問題は:それをチェックする方法ですか?純粋なSQLは可能ですが、私はそれを避けたいと思います。

私が見る唯一の方法は、別のコントローラーからメソッドを呼び出すことです。

4

1 に答える 1

0

ロジックを のメソッドに入れ、AppControllerすべてのコントローラーからアクセスできるようにします。
そのメソッドで、必要に応じてモデルをロードします。

class AppController extends Controller {

    protected function isUserAllowed() {
        if (!isset($this->TheModel)) {
            $this->loadModel('TheModel');
        }

        ...
    }

}
于 2012-04-12T09:10:38.407 に答える