标签:查询 问题 new 设计 图片 HERE model 问题分析 title
haswhere和where不能连用,如果模型后写了haswhere,再写where的话haswhere就没响应了,关于这点,要怎么做才能解决关联时即可以搜索子表的字段又可有搜索本表的字段的查询呢?
模型关联搜索部分
$where = new Where();
$tags = DocumentModel::hasWhere(‘user‘,[‘user_type‘ => ‘设计师‘])->where($where)->with(‘user‘)->select();
dump($tags);
如图hasWhere() 根本无效
$where = new Where();
$tags = DocumentModel::hasWhere(‘user‘,[‘user_type‘ => ‘设计师‘])->with(‘user‘)->select();
dump($tags);
可以看到没有任何问题
$where = new Where();
$tags = DocumentModel::hasWhere(‘user‘,[‘user_type‘ => ‘设计师‘])->where($where)->with(‘user‘)->select();
dump($tags);
可以看到haswhere 直接被忽视了
$where = new Where();
$where[‘title‘] = [‘like‘,‘%文档%‘];
//由于hasWhere方法使用的是JOIN查询,在查询条件中要指定别名,别名就是模型名
$where[‘DocumentModel.status‘] = 1;
$tags = DocumentModel::hasWhere(‘user‘,[‘user_type‘ => ‘设计师‘])->where($where)->with(‘user‘)->select();
dump($tags);
可以看到 haswhere 再次被忽视了
$tags = DocumentModel::hasWhere(‘user‘,[‘user_type‘ => ‘设计师‘])->where(‘title‘, ‘文档2‘)->with(‘user‘)->select();
dump($tags);
可以看到这次haswhere 是有效果的
haswhere 和 where 一起使用有以下几点要注意
tp5.1关于关联模型搜索haswhere和where不能同时使用的问题
标签:查询 问题 new 设计 图片 HERE model 问题分析 title
原文地址:https://www.cnblogs.com/makalochen/p/13298231.html