我可以在一个模型中使用另一个模型吗?
Eg.
<?php
class Form extends AppModel
{
var $name='Form';
var $helpers=array('Html','Ajax','Javascript','Form');
var $components = array( 'RequestHandler','Email');
function saveFormName($data)
{
$this->data['Form']['formname']=$data['Form']['formname'];
$this->saveField('name',$this->data['Form']['formname']);
}
function saveFieldname($data)
{
$this->data['Attribute']['fieldname']=$data['Attribute']['fieldname'];
}
}
?>
老线程,但我要插话,因为我相信答案不完整并且缺乏“为什么”。 CakePHP 具有三种加载模型的方法。虽然只有两种方法可以在控制器之外工作,但我将提及这三种方法。我不确定版本的可用性,但这是核心内容,所以我相信它们会起作用。
App::import()只找到并且require()
s 文件,您需要实例化该类才能使用它。你可以告诉import()
类的类型、名称和文件路径详细信息。
ClassRegistry::init()加载文件,将实例添加到对象映射并返回实例。这是加载某些内容的更好方法,因为它设置了“蛋糕”内容,就像通过正常方式加载类时会发生的情况一样。您还可以为我发现有用的类名设置别名。
Controller::loadModel() uses ClassRegistry::init()
以及将模型添加为控制器的属性。它还允许$persistModel
用于未来请求的模型缓存。这仅适用于控制器,如果这是您的情况,我会在其他方法之前使用此方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)