在Library cakephp中使用Model

时间:2011-12-25 23:55:27

标签: php cakephp

我在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()。

感谢帮助。

3 个答案:

答案 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();