Activerecord Yii-活跃记录关系有很多问题

Activerecord Yii-活跃记录关系有很多问题,activerecord,yii,has-many,Activerecord,Yii,Has Many,我是Yii的新手,在建立AR关系方面有困难。 我与Rails活动记录有过接触,但无法在Yii中设置简单的关系 典型的例子是两个模型,业务和业务描述,其中一个业务可以有N个业务描述 Im使用MySQL和MyIsam引擎,并在BusinessDescription中声明了一个名为business_id的FK 业务关系: public function relations() { return array( 'businessdescription' =>

我是Yii的新手,在建立AR关系方面有困难。 我与Rails活动记录有过接触,但无法在Yii中设置简单的关系

典型的例子是两个模型,业务和业务描述,其中一个业务可以有N个业务描述

Im使用MySQL和MyIsam引擎,并在BusinessDescription中声明了一个名为business_id的FK

业务关系:

public function relations()
{
    return array(
                 'businessdescription' => array(self::HAS_MANY, 'businessdescription', 'business_id'),
    );
}
public function relations()
    {
        return array(
                    'business' => array(self::BELONGS_TO, 'business', 'business_id'),
        );
    }
业务描述关系:

public function relations()
{
    return array(
                 'businessdescription' => array(self::HAS_MANY, 'businessdescription', 'business_id'),
    );
}
public function relations()
    {
        return array(
                    'business' => array(self::BELONGS_TO, 'business', 'business_id'),
        );
    }
在我的索引操作中,我在网站的控制器中执行以下操作:

$business= Business::model()->findByPk(1);
$b_desc = $business->description;
$test_relation = $business->businessdescription;
这要么给我
属性“Business.description”没有定义。
或者如果我在业务模型中声明它,比如
public$descriptin
当我*var\u dump*它时,它返回null

我所要做的就是从协会取记录

问候并感谢您的意见。

更正: 这必须返回数组

foreach($model as $val){
echo $val->attribute;
}
这样使用:

$business= Business::model()->findByPk(1);
$b_desc = $business->businessdescription->description;

由于
businessdescription
是一个
具有许多关系,因此它将返回一个数组,例如:

foreach ($business->businessdescription as $bdesc)
{
  echo $bdesc->description;
}

PS:MyIsam不支持FK,您应该巧妙地使用InnoDB,这表明:“尝试获取非对象的属性”。有什么想法吗?是的,这确实是MyIsam的问题:(虽然我承认我试图做一些类似于:
$business->businessdescription->description
,Rails风格的事情。似乎当我做findByPk时,这将不得不做:
$business->businessdescription[0]->description
。感谢您的输入和MyIsam的澄清。