CakePHP: не объект - PullRequest
       2

CakePHP: не объект

1 голос
/ 13 февраля 2012

Я использую CakePHP 2.0. У меня есть 2 модели / контроллеры (категория / купон):

// File: Model/Coupon.php
// Table Name: coupons
class Coupon extends AppModel {
    public $displayField = 'Coupon';
}

// File: Model/Category.php
// Table Name: categories
class Category extends AppModel {
    public $displayField = 'Category';
}

// File: Controllers/CouponsController.php
class CouponsController extends AppController {
}

// File: Controllers/CategoriesController.php
class CategoriesController extends AppController {
}

// File: Controllers/AppController.php
class AppController extends Controller {
    public $helpers = array('Html', 'Form');

    public function beforeFilter() {
        //$this->set('cat', $this->Category->find());
        $this->set('cat', $this->Coupon->find());
    }
}

Я пытаюсь установить переменную для представления default.ctp в AppController. Когда я устанавливаю 'cat' на: "$ this-> Coupon-> find ()", он возвращает массив, который я могу распечатать в моем виде. Когда я устанавливаю 'cat' в закомментированную строку "$ this-> Category-> find ()", я получаю следующую ошибку:

Неустранимая ошибка: вызов функции-члена find () для необъекта в ...

Я пытался обработать ошибку за тонну, но я не могу понять это. Я что-то упустил?

1 Ответ

1 голос
/ 13 февраля 2012

Похоже, ваша модель не загружена, прежде чем пытаться получить к ней доступ. Вы должны убедиться, что обе модели загружены в контроллер. Вы можете сделать это одним из нескольких способов.

// before the class declaration
App::uses('Category','Model');
App::uses('Coupon','Model');

// in the beforeFilter
$this->loadModel('Category');
$this->loadModel('Coupon');

// as a var in the controller
public $uses = array('Category','Coupon');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...