我在app/Lib文件夹中创建了一些文件,并希望从库类中访问我的一个模型:
<?php
App::uses('CrawlerBase','Lib');
App::uses('Deal', 'Model');
class SampleCrawler extends CrawlerBase {
public $uses = array('Deal');
function __construct(){
$this->Deal->create();
Run Code Online (Sandbox Code Playgroud)
然而,蛋糕似乎找不到Deal模型,我在模型创建行中的非对象上调用成员函数create().
感谢帮助.
如果不在控制器/ shell中,请始终手动包含模型:
$this->Deal = ClassRegistry::init('Deal');
Run Code Online (Sandbox Code Playgroud)
然后
$this->Deal->create(); // etc
Run Code Online (Sandbox Code Playgroud)
优点:你让Cake加载并为你创建模型,所以如果你早先已经做过,它会尝试重用它.
编辑:为了完整起见,在控制器/外壳内你可以做到
$this->loadModel('Deal');
$this->Deal->create();
Run Code Online (Sandbox Code Playgroud)
其他方法也可以做到这一点:
APP::import('Model', 'Deal');
$this->Deal = new Deal();
$this->Deal->create();
Run Code Online (Sandbox Code Playgroud)