查找设置为hasAndBelongsToMany的模型

时间:2011-09-08 19:31:55

标签: php cakephp cakephp-1.3

我正在使用CakePHP创建一个服装目录网站。我有两个模型:StoreBrandBrand设置为hasAndBelongsToMany,因为商店可以有许多与之相关的品牌,但很明显,一个品牌可以应用于众多商店。

我有StoresController个提取商店,但我遇到的问题是在BrandsController中提取品牌列表。如果我将Brand模型设置为与hasAndBelongsToMany模型建立Store关系,我是否可以不再执行$this->Brand->find('all')之类的操作?当我这样做时,我收到以下错误:

  

致命错误:在第8行的/[path]/app/controllers/brands_controller.php中调用未定义的方法Brand :: find()

以下是我的模型定义:

class Brand {    
    var $hasAndBelongsToMany = array(
        'Store' => array(
            'className' => 'Store',
            'joinTable' => 'brands_stores',
            'foreignKey' => 'brand_id',
            'associationForeignKey' => 'store_id',
            'unique' => true
        )
    );
}

我的Store型号:

class Store extends AppModel {
    var $hasMany = array(
        'Reviews' => array(
            'className' => 'StoreReview',
            'foreignKey' => 'store_id',
            'conditions' => array(
                'approved' => 1
            ),
            'order' => 'created DESC'
        )
    );
}

2 个答案:

答案 0 :(得分:2)

class Brand扩展了AppModel {

答案 1 :(得分:1)

Class Brand必须扩展您似乎忘记的AppModel