0

问题是我导入了一个模型。

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 ) )
4

1 回答 1

1

你不应该使用 App::import()。这仅适用于供应商类。在内部,它的 App::uses()。

但对于模型,这也不适用。只需使用 ClassRegistry::init():

$Carrier = ClassRegistry::init('Carrier');
$results = Carrier->find(...);

对于模型蛋糕有自己的加载机制。

于 2013-06-26T00:10:26.073 回答