Activerecord Yii-活跃记录关系有很多问题
我是Yii的新手,在建立AR关系方面有困难。 我与Rails活动记录有过接触,但无法在Yii中设置简单的关系 典型的例子是两个模型,业务和业务描述,其中一个业务可以有N个业务描述 Im使用MySQL和MyIsam引擎,并在BusinessDescription中声明了一个名为business_id的FK 业务关系: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' =>
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的澄清。