Activerecord 我有很多亲戚一直不工作

Activerecord 我有很多亲戚一直不工作,activerecord,yii,Activerecord,Yii,我一直在遵循教程,在业务模型和类别模型之间建立许多关系 我的桌子是: business[id (PK),name,date,...] business_category[businessID (FK to business.id), categoryID (FK to category.ID)] category[id (PK), name, date,...] 在我的商业模式中,我有 public function relations() { return array(

我一直在遵循教程,在业务模型和类别模型之间建立许多关系

我的桌子是:

business[id (PK),name,date,...]
business_category[businessID (FK to business.id), categoryID (FK to category.ID)]
category[id (PK), name, date,...]
在我的商业模式中,我有

public function relations()
{
    return array(
        'categories'=>array(self::MANY_MANY, 'Category',
                            'business_category(categoryID,businessID)'),
    );
}
public function relations()
{
    return array(
        'businesses'=>array(self::MANY_MANY, 'Business',
                            'business_category(categoryID,businessID)'),
    );
}
在我的分类模型中

public function relations()
{
    return array(
        'categories'=>array(self::MANY_MANY, 'Category',
                            'business_category(categoryID,businessID)'),
    );
}
public function relations()
{
    return array(
        'businesses'=>array(self::MANY_MANY, 'Business',
                            'business_category(categoryID,businessID)'),
    );
}
当我传递到CListView小部件时

'dataProvider'=>new CActiveDataProvider('Business', array(
                                'data'=>$model->businesses)),
如果
$model
是一个类别模型,我就可以正常地遍历每个业务的类别:
foreach($data->categories as$category)

当我有
$model=$this->loadModel($id)
时,
$model->categories
没有任何结果


可能有什么问题?

假设您已经完成了一个var_dump$模型,并确保它不为NULL,并且确实有一个从loadModel()返回的模型,我怀疑这可能是由于您的列在业务关系中的顺序造成的。尝试:

类别模型:

public function relations()
{
    return array(
        'businesses'=>array(self::MANY_MANY, 'Business',
                            'business_category(businessID,categoryID)'), // Swapped order of columns
    );
}

我的坏。。。我从一个查询返回了多条记录,这就是为什么
$model->categories
不起作用。

您是否尝试跳过loadModel(),改为使用$model=new YOURMODELNAME::model()->findByPk($pk)?