Cakephp致命错误:在非对象上调用成员函数find()

时间:2012-05-12 12:34:38

标签: cakephp

我收到以下错误:
注意(8):未定义的属性:ProductsController :: $ Category **

致命错误:在非对象

上调用成员函数find()

**
在第7行的\ shop \ app \ controllers \ products_controller.php中 的型号:

class Category extends AppModel {
var $name = 'Category';
var $hasMany = array('Product');
}  

控制器:

class CategoriesController extends AppController{
var $name = 'Categories';}
class ProductsController extends AppController{
var $name ='Products';

function lists(){
$categories = $this->Category->find( 'all',array('order'=>'Category.id ASC'));
} 

  

我有两个控制器类1. CategoriesController 2。   ProductsController的。当我在类别控制器中使用list方法时,   这是工作,但在产品控制器中它会出错吗?

1 个答案:

答案 0 :(得分:3)

如果你想从类别(或其他相关的)模型调用方法,你必须通过'parent'(在本例中为Prodcut)模型来完成:

$categories = $this->Product->Category->find('all', array('order' => 'Category.id ASC'));

应该有用。

请参阅http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#relationship-types