模型中追加了一个参数,如何可以查询到
在model中追加了一个参数level
现在想根据level作为条件查询
报错
Column not found: 1054 Unknown column ‘level’ in ‘where clause’
之所以要用level是因为这个level字段跨库了,是从其他库的表里拿过来的,考虑用了wherehas 报错权限问题
command denied to user ‘xxxxxx‘
咨询了公司运维,说这个不能给加上,让用其他办法。想过集合,但是上千万数据集合一下,再分页,根本撑不住。。。。。
目前妥协了,在订单表里加了一个level字段
你没有这个字段,怎么查询.
追加模型属性,需要先定义访问器,然后在模型属性
appends
中添加该属性名。这个只是针对模型层面的,是一个虚拟列名。查询构造器中
where
的第一个参数是表中已存在的列名,是真实列名,需要数据库表中有对应列你这个where是属于查询构造器的,是针对数据库的,数据库都没这个字段,所以才报错,你可以把数据获取到之后用集合的where
你boss: 这个问题让公司的小李处理吧, 你先歇歇吧.
你: 老板,我们公司没有小李这个人啊!!!
你boss: 跟你在论坛问的问题不是一个场景吗?
你: emo
要马儿跑,又不给马儿吃草。
追加的字段不能直接当条件的,好久之前也遇到过同样的问题
先不要使用 Level 作为查询判断,如果你的查询结果中 Level 有值的话,可以使用
Collection
中的where
再次筛选。自定义分页 把基础查询缓存到redis 没有什么性能问题
没有分页的话 就把关联id拿过去查对应的level,然后在合并数组 wherehas有大坑, 用的exists 走不到索引 加个字段得了
就按照你说的加个冗余字段就好了,简单高效!