CakePHP 从控制器内部获取对模型的泛型引用


CakePHP get a generic reference to the Model from inside the Controller

(CakePHP 2.3, CentOS) 所以,这是交易:我有一个我写的控制器"SpecialController",它可以在我的应用程序中做一些方便的杂技。要完成它的工作,它需要了解模型对象。本例中的模型是$this>用户。SpecialController 无法知道这一点,因为它只是一个基类,所以我在 beforeFilter() 中明确地告诉它模型:

class UsersController extends SpecialController {
    function beforeFilter() {
    $this->bindModel($this->User);
    parent::beforeFilter();
    }

bindModel() 函数只是在内部记录一个引用,以便我的 SpecialController 可以做特殊的事情。我想摆脱对$this>用户的看法。是否有引用模型的属性?我怀疑有类似"$this->modelObj"的东西被设置为与"$this->User"相同的值,但我在文档中找不到任何内容。

如果使用控制器作为基类,则可以执行以下操作:

function beforeFilter(){
    parent::beforeFilter();
    $this->bindModel($this->{$this->modelClass});
    // or 
    $this->bindModel(ClassRegistry::init($this->modelClass));
}

不确定这是否是您要找的。

蛋糕书中看到这个:http://book.cakephp.org/2.0/en/controllers.html#Controller::$uses