ano*_*ard 8 php frameworks cakephp cakephp-1.3
由于其他答案(如此),我只想澄清CakePHP 1.3中应该使用的内容.
具体来说,我有一种情况要求一个模型依赖于另一个,所以从该模型中的方法我想加载另一个,用信息做一些事情,等等.
在以前的版本中,根据您要加载的类的类型,有不同的函数来加载所需的类.这些函数已被弃用,所有类和库加载应该现在通过App :: import()完成.
我假设这涵盖了使用ClassRegistry等等,但我只是希望它清楚,并且确定:
我是否应该App::import('Model', ...)使用另一个模型或其他模型?如果别的什么,什么?
ano*_*ard 13
看来,即使ClassRegistry::init()引用文件,即使是自2008年以来的两年,最好的方法仍然是使用.
这在特定类/方法的实际API /文档中很明显.
根据$ name或要搜索的特定文件查找类.调用App :: import()不会构造文件中包含的任何类.它只会找到并要求()文件.
加载一个类,在注册表中注册该对象并返回该对象的实例.
示例简单使用:获取Post模型实例ClassRegistry :: init('Post');
正如您所看到的,即使API文档也指出了使用ClassRegistry加载模型的示例,为您实例化它们,而不是App::import(尽管更少),尽管CakePHP"Book"文档中的措辞已经改变.
如果您可以关联模型,那么最好的方法是使用动态绑定关系
$this->bindModel("hasOne" => array("Model2")).
如果您无法关联模型,并且只想在一次出现时使用第二个模型,那么您可以使用
ClassRegistry::init('Model2')->find('allThatIWant');
如果你想在几次出现时使用它,你必须尝试
$this->model2 = & ClassRegistry::init('Model2')
$this->model2->find('allThatIWant');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9635 次 |
| 最近记录: |