Cakephp-根据上下文查询模型

时间:2011-10-26 14:08:28

标签: php cakephp dynamic model

我需要做这样的事情。

$model="MyModel";
$results=$this->"MyModel"->find("all);

所以我需要根据情况调用不同的函数。我怎么能做到这一点?

3 个答案:

答案 0 :(得分:1)

那么,你要做的是根据条件调用不同的模型吗?

$model = "Model";
$results = $this->{$model}->find('all');

但是,如果您发现自己需要这样做,可能是因为您的代码组织不正确。您可能想要研究替代方案。

答案 1 :(得分:1)

您可以在控制器操作

中执行此操作
class MyControllerController extends AppController
{
    function action_name()
    {
        $this->uses = array(
            'MyModel',
            'AnotherModel'
        );

        $this->AnotherModel->find('all');
    }
}

答案 2 :(得分:1)

$ model =“Model”; $ results = $ this-> {$ model} - > find('all');

根据CakePHP编码惯例,使用这种方法是可以的,没有更好或更清洁的替代方案。特别是在使用复杂逻辑编码行为时。所以坚持下去,不要担心。