Yii - 积极记录关系有很多问题

时间:2013-04-16 09:34:16

标签: activerecord yii has-many

我是Yii的新手,我在建立AR关系时遇到了麻烦。 我已经使用了Rails Active Record,但我无法在Yii中设置简单的关系。

此案例介于两个模型之间,即Business和BusinessDescription,其中1个商家可以拥有N个BusinessDescriptions。

我使用MySQL和MyIsam Engine并在BusinessDescription中声明了名为business_id的FK。

业务关系:

public function relations()
{
    return array(
                 'businessdescription' => array(self::HAS_MANY, 'businessdescription', 'business_id'),
    );
}

BusinessDescriptions Relations:

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;

这要么给我Property "Business.description" is not defined.,要么我在商业模型中声明它public $descriptin,当我* var_dump *它时它返回null。

我想要的只是从争论中获取记录。

关心并感谢您的意见。

2 个答案:

答案 0 :(得分:1)

修正: 这必须返回数组

foreach($model as $val){
echo $val->attribute;
}

像这样使用:

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

答案 1 :(得分:0)

由于businessdescriptionHAS_MANY关系,它将返回一个数组,例如:

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

PS:MyIsam不支持FK,你应该使用InnoDB