2011-10-26 41 views

回答

1

那麼,你要做的是根據條件調用不同的模型嗎?

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

但是,如果您發現自己需要這樣做,那可能是由於您的代碼組織不正確。你可能想看看替代品。

+0

謝謝,這工作完美。 我知道它看起來很奇怪和「髒」,但它是我的問題的唯一解決方案。 – Chobeat

1

你可以做到這一點從控制器動作中

class MyControllerController extends AppController 
{ 
    function action_name() 
    { 
     $this->uses = array(
      'MyModel', 
      'AnotherModel' 
     ); 

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

$模式= 「模型」; $ results = $ this - > {$ model} - > find('all');

根據CakePHP編碼約定,使用這種方法沒有問題,並且沒有更好或更清晰的替代方案。特別是當你用複雜的邏輯編碼行爲時。所以堅持下去,不要擔心。