[英]Yii2 get data using hasMany relation
我有一个查询$occupier
从表中获取所有ID(10和16)。 问题是我应该如何将其放在activeDataProvider查询中,以便可以获取所有传递的ID,因为我无法在查询中进行foreach循环。
关系:
public function getop_occupier()
{
return $this->hasMany(OpOccupier::classname(),['id'=>'unit_id']);
}
控制器:
$occupier = OpOccupier::find()
->where(['unit_id'=>$id])
->all();
$dataProviderTranscation = new ActiveDataProvider([
'query' => OpOccupierTrxGroup::find()->where(['or','occupier_id'=>10,'occupier_id'=>16]),]);
我试过了:
$dataProviderTranscation = new ActiveDataProvider([
'query' => OpOccupierTrxGroup::find()->where(['occupier_id'=>$occupier['id'])->all();
它返回错误的未定义索引ID。
任何帮助或建议,将不胜感激。 谢谢
您可以使用lefJoin关系来联接表
$dataProviderTranscation =
new ActiveDataProvider([
'query' =>
OpOccupierTrxGroup::find()
->where(['op_occupier'=>$occupier['id'])
->andWhere(['occupier.id'=>[10,16]])
->leftJoin('occupier','occupier.id=op_occupier_trx_group.occupier_id')
->all();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.