andFilterWhere 如何指定查询某个表 [ 2.0 版本 ]
a 表
uid name parentid
b 表
uid name
尝试用
在b库创建关系, $this->hasOne
(b库::className()
, ['uid' => 'parentid']
);
主要是为了查询a表里的parentid 对应b表的 name
那么如果设定可以通过用户查询name 到父级 表的name,如何指定andfilterwhere是查询父级的name,
否则默认都会查询到a表里的name
$query->andFilterWhere
('like', 'name', ‘要查询的父级name’)
共 1 个回答
-
用left join试试
$query->leftJoin('父表', 'a.parentId = b.uid')->andFilterWhere(['like', 'a.name', '要查询的父级name'])
共 3 条回复@jackiegao 少用join 表的多了 容易混乱 with不错啊 with(['with'=>function($query){$query->条件什么的}]) 有文档
sucksdie
注册时间:2016-10-31
最后登录:2017-05-26
在线时长:2小时46分
最后登录:2017-05-26
在线时长:2小时46分
- 粉丝0
- 金钱260
- 威望0
- 积分280