Я создал несколько файлов в папке приложения / Lib и хотел бы получить доступ к одной из моих моделей из классов библиотеки:
<?php App::uses('CrawlerBase','Lib'); App::uses('Deal', 'Model'); class SampleCrawler extends CrawlerBase { public $uses = array('Deal'); function __construct(){ $this->Deal->create();
Тем не менее, cake can not, похоже, находит модель Deal и im, получая вызов функции-члена member () для не-объекта в строке создания модели.
Цените помощь.
Другой способ сделать это:
APP::import('Model', 'Deal'); $this->Deal = new Deal(); $this->Deal->create();
Всегда включайте модели вручную, если не в контроллере / оболочке:
$this->Deal = ClassRegistry::init('Deal');
а потом
$this->Deal->create(); // etc
Преимущество: вы разрешаете загрузке Cake и запускаете модель для вас, поэтому, если вы уже сделали это раньше, она попытается ее повторно использовать.
EDIT: ради полноты, внутри контроллера / оболочки вы можете просто сделать
$this->loadModel('Deal'); $this->Deal->create();
Пытаться;
$ deal = new Deal (); // создать объект сделки // если это не работает, тогда ClassRegistry :: Init ( "Сделка"); $ deal = new Deal ();