我是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;
由于businessdescription
是HAS_MANY
关系,它将返回一个数组,例如:
foreach ($business->businessdescription as $bdesc)
{
echo $bdesc->description;
}
MyIsam不支持FK,你应该使用InnoDB