我在app / Lib文件夹中创建了一些文件,并希望从库类中访问我的一个模型:
<?php
App::uses('CrawlerBase','Lib');
App::uses('Deal', 'Model');
class SampleCrawler extends CrawlerBase {
public $uses = array('Deal');
function __construct(){
$this->Deal->create();
然而,蛋糕似乎找不到Deal模型,我在模型创建行中的非对象上调用成员函数create()。
感谢帮助。
答案 0 :(得分:8)
如果不在控制器/ shell中,请始终手动包含模型:
$this->Deal = ClassRegistry::init('Deal');
然后
$this->Deal->create(); // etc
优势:你让Cake加载并为你创建模型,所以如果你早先已经这样做了,它会尝试重用它。
编辑:为了完整起见,在控制器/ shell中你可以简单地执行
$this->loadModel('Deal');
$this->Deal->create();
答案 1 :(得分:3)
其他方式也可以这样做:
APP::import('Model', 'Deal');
$this->Deal = new Deal();
$this->Deal->create();
答案 2 :(得分:0)
尝试;
$deal = new Deal(); // to create Deal Object //if that doesnot work then, do ClassRegistry::init("Deal"); $deal = new Deal();