查询时,如何忽略当前表不存在的字段
比如:
User::where('mall_id',3)->get();
其实user
表中并没有mall_id
字段,此时会“列未定义”。
而我希望实现的需求是不报错,只是自动忽略那些非定义字段的查询条件。
尝试了用where回调函数中Schema::hasColumn
判断来做:
$this->query->where(function($query){
if(\Schema::hasColumn('users','mall_id')) {
$query->where('mall_id', $this->request->mall_id);
}
});
而现在有另一个需求是,这一段query的使用对象不确定,也就是Model不确定是User
,所以Schema::hasColumn里的users
希望是自动识别当前查询的表名,而不是写死的users
,不知道有什么办法实现?
试试这个
@song 5.2里面标示找不到
getModel
方法@terranc 那你先dump一下
$query
看是什么对象,看有什么办法能找到对应的表吧@song 看了,感觉没有可用的。