在 Yii1 中,我可以使用预先加载来加载父项(嵌套集)。是这样的:
class Category extends CActiveRecord {
public function relations() {
return array(
'parent' => array(self::HAS_ONE, 'Category', '', 'on' => '(t.left between parent.left and parent.right) and parent.level + 1 = t.level', 'joinType'=>'left join'),
);
}
}
(同型号的关系,将第2个参数设置为空,在on
参数中设置自己的条件)。
我如何在 Yii2 中做同样的事情? (因为 Yii2 需要 key => value
对来初始化关系)。
最佳答案
尝试这样使用:
public function getRelation()
{
return $this->hasOne(RelationTable::className(), ['id' => 'relation_id'])->onCondition(array|string)->andOnCondition(array|string);
}
或
public function getRelation()
{
return $this->hasOne(RelationTable::className(), ['id' => 'relation_id'])->andOnCondition(array|string);
}
更多内容在这里: http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#relational-data
关于activerecord - 预加载相关模型(嵌套集),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28793543/