我是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。
我想要的只是从争论中获取记录。
关心并感谢您的意见。
答案 0 :(得分:1)
修正: 这必须返回数组
foreach($model as $val){
echo $val->attribute;
}
像这样使用:
$business= Business::model()->findByPk(1);
$b_desc = $business->businessdescription->description;
答案 1 :(得分:0)
由于businessdescription
是HAS_MANY
关系,它将返回一个数组,例如:
foreach ($business->businessdescription as $bdesc)
{
echo $bdesc->description;
}
PS:MyIsam不支持FK,你应该使用InnoDB