0

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

恰当的例子是 2 个模型,Business 和 BusinessDescription,其中 1 个 Business 可以有 N 个 BusinessDescriptions。

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

业务关系:

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;

这要么给我Property "Business.description" is not defined.,要么如果我在业务模型中声明它,就像public $descriptin它在我 *var_dump* 时返回 null 一样。

我想要的只是从协会中获取记录。

问候并感谢您的意见。

4

2 回答 2

1

更正:这必须返回数组

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

像这样使用:

$business= Business::model()->findByPk(1);
$b_desc = $business->businessdescription->description;
于 2013-04-16T09:50:12.487 回答
0

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

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

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

于 2013-04-16T10:06:58.243 回答