在Library cakephp中使用Model

Yeh*_*lam 5 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();
Run Code Online (Sandbox Code Playgroud)

然而,蛋糕似乎找不到Deal模型,我在模型创建行中的非对象上调用成员函数create().

感谢帮助.

mar*_*ark 8

如果不在控制器/ 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)


Sor*_*rcy 5

其他方法也可以做到这一点:

APP::import('Model', 'Deal');
$this->Deal = new Deal();

$this->Deal->create();
Run Code Online (Sandbox Code Playgroud)