【发布时间】:2012-03-30 06:48:14
【问题描述】:
我知道我可以通过 $this->loadModel("MyModel") 在控制器中使用另一个模型,但是如何在另一个模型中执行此操作?我尝试使用 loadModel 但它不起作用。
有什么想法吗?
谢谢
【问题讨论】:
标签: php cakephp cakephp-1.3
我知道我可以通过 $this->loadModel("MyModel") 在控制器中使用另一个模型,但是如何在另一个模型中执行此操作?我尝试使用 loadModel 但它不起作用。
有什么想法吗?
谢谢
【问题讨论】:
标签: php cakephp cakephp-1.3
更简单的是:
$my_model = ClassRegistry::init('MyModel');
更多详情: Can I use one model inside of a different model in CakePHP?
【讨论】:
App::import 或App::uses 与模型构造函数一起使用,则会出现问题,例如使用翻译行为。原因:DboSource 类使用ClassRegistry::getObject 获取模型并读取虚拟字段。因此,为了防止使用同一模型的两个实例,请使用此解决方案。
您可以使用以下代码以任何方式导出与当前模型无关的模型:
App::import('Model', 'MyModel');
$my_model = new MyModel();
如果MyModel 与当前模型相关联,您可以使用链接,例如$this->SomeModel->MyModel
【讨论】:
您无需导入任何内容。 只需这样做:
$my_model = new MyModel();
//Then
$my_model->read(null,$id);
【讨论】: