是否有可能以及在Yii2中使用参数定义关系的最佳方式 .
情况很简单 . 我有表格文本和texts_regional . texts_regional当然有外键text_id和lang_id .
Gii生成了一种获取所有区域文本的方法,但我不需要在前端 . 我只需要当前的语言 . 生成的方法是:
public function getTextsRegionals()
{
return $this->hasMany(TextRegional::className(), ['text_id' => 'id']);
}
试过这个,但它可能不对:
public function getReg($langId=null)
{
if($langId === null && Yii::$app->session->has('langId')) {
$langId = Yii::$app->session->get('langId');
}
return $this->hasOne(TextRegional::className(), ['text_id' => 'id', 'lang_id'=>$langId]);
}
我需要来自两个表的数据,所以我想加载这个 .
使用单独的方法并手动构建查询是否更好?
2 回答
在文档中读入可以做的事情 - > onCondition所以写了这样的方法:
$ langId在主控制器中设置 .
但我最终使用TextRegional模型并加入Text模型来设置条件 . 制作了一个TextRegionalQuery类并添加了一个新方法:
像这样使用它:
要么