我需要做這樣的事情。Cakephp - 根據上下文查詢模型
$model="MyModel";
$results=$this->"MyModel"->find("all);
所以我需要根據情況來調用不同的功能。我怎麼能做到這一點?
我需要做這樣的事情。Cakephp - 根據上下文查詢模型
$model="MyModel";
$results=$this->"MyModel"->find("all);
所以我需要根據情況來調用不同的功能。我怎麼能做到這一點?
那麼,你要做的是根據條件調用不同的模型嗎?
$model = "Model";
$results = $this->{$model}->find('all');
但是,如果您發現自己需要這樣做,那可能是由於您的代碼組織不正確。你可能想看看替代品。
你可以做到這一點從控制器動作中
class MyControllerController extends AppController
{
function action_name()
{
$this->uses = array(
'MyModel',
'AnotherModel'
);
$this->AnotherModel->find('all');
}
}
$模式= 「模型」; $ results = $ this - > {$ model} - > find('all');
根據CakePHP編碼約定,使用這種方法沒有問題,並且沒有更好或更清晰的替代方案。特別是當你用複雜的邏輯編碼行爲時。所以堅持下去,不要擔心。
謝謝,這工作完美。 我知道它看起來很奇怪和「髒」,但它是我的問題的唯一解決方案。 – Chobeat