活动记录关系有许多问题



我是Yii的新手,在建立AR关系方面遇到了麻烦。我已经与Rails活动记录,但我不能设置一个简单的关系在Yii。

这个例子是在两个模型之间,业务和业务描述,其中一个业务可以有N个业务描述。

我使用MySQL与MyIsam引擎,并在BusinessDescription中声明了一个FK名为business_id。

业务关系:

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

BusinessDescriptions关系:

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。

我想要的只是从关联中获取记录。

感谢您的意见。

更正:这必须返回数组

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

像这样使用:

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

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

foreach ($business->businessdescription as $bdesc)
{
  echo $bdesc->description;
}
MyIsam不支持FK,你应该使用InnoDB

最新更新