我在Laravel的代码中使用whereOr和orWhere都可以,但有时会产生不同的结果
$user_query = User::select( 'users.id','users.username','users.first_name','users.last_name','users.photo' ) ->where('users.status',1) ->where('users.id','!=',$id) ->where('users.username','like','%'.$searchkey.'%') ->orWhere('users.first_name','%'.$searchkey.'%') ->orwhere('users.last_name','%'.$searchkey.'%')->get(); // ->whereOr('users.first_name','%'.$searchkey.'%') // ->whereOr('users.last_name','%'.$searchkey.'%')->get();
whereOr和orWhere之间的区别是什么
他们俩都可以这样做.但不是真的,因为你在哪里使用错误. whereOr是动态的地方.在
this blogpost中对它们进行了更深入的描述
原文链接:https://www.f2er.com/laravel/445158.html对于动态wheres,条件不仅定义参数,还定义方法名称本身.这是一个例子:
->whereAge(18);
它可以被翻译成
->where('age','=',18);
这是通过__call()函数完成的,然后调用dynamicWhere()
.此方法然后解码您调用的方法名称并将该信息保存为where条件.
现在有了whereOr,你实际上必须称之为:
->whereAgeOrGender(18,'male');
这意味着它为您提供了简单的语法,但却不如“真实”那么灵活.例如,它将始终使用=运算符.所以它绝对不适合你的情况.