问题是我导入了一个模型。
App::import('Model', 'Carrier');
$this->Carrier = new Carrier;
我稍后重新导入并修改此模型。通常它也会起作用。但是,这是一个多语言网站。第二个实例,它返回一个空字符串。
我试过这个
App::import('Model', 'Carrier');
$this->Carrier = new Carrier;
... blabla...
App::import('Model', 'Carrier');
$this->getCarrier = new Carrier;
... blabla...
并尝试了这个:
App::import('Model', 'Carrier');
$this->Carrier = new Carrier;
... blabla...
unset($this->Carrier);
App::import('Model', 'Carrier');
$this->Carrier = new Carrier;
... blabla...
相同的结果:它从数据库返回一个空字符串的第二个实例。
我的翻译模式:
<?php
class Carrier extends AppModel
{
var $name = 'Carrier';
public $actsAs = array('Translate' => array(
'name',
'description'
)
);
}
?>
更新
通常结果:
Array ( [Carrier] => Array ( [id] => 1 [name] => TestCarrier [description] => Example [status] => 1 ) )
重新导入模型的结果错误:
Array ( [Carrier] => Array ( [id] => 1 [name] => [description] => [status] => 1 ) )
答案 0 :(得分:1)
您不应该使用App :: import()。这仅适用于供应商类别。 在内部,它的App :: uses()。
但对于模型,这也不适用。 只需使用ClassRegistry :: init():
$Carrier = ClassRegistry::init('Carrier');
$results = Carrier->find(...);
对于模型,cake有自己的加载机制。