【问题标题】:Difference between whereOr and orWhere in laravellaravel 中 whereOr 和 orWhere 的区别
【发布时间】:2015-02-19 03:13:19
【问题描述】:

我在 Laravel 的代码中使用了 whereOrorWhere 两者都有效,但有时会给出不同的结果

$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','like','%'.$searchkey.'%')
                    ->orwhere('users.last_name','like','%'.$searchkey.'%')->get();

                    // ->whereOr('users.first_name','like','%'.$searchkey.'%')
                    // ->whereOr('users.last_name','like','%'.$searchkey.'%')->get();

whereOrorWhere有什么区别

【问题讨论】:

标签: php laravel eloquent query-builder


【解决方案1】:

他们都可以做同样的事情。但并非如此,因为您使用 whereOr 错误。 whereOr 是一个动态。在this blogpost中对它们进行了更深入的描述

使用动态 wheres,条件不仅由参数定义,还由方法名称本身定义。这是一个例子:

->whereAge(18);

可以翻译成

->where('age', '=', 18);

这是通过__call() 函数完成的,该函数随后调用dynamicWhere()。然后,此方法解码您调用的方法名称并将该信息保存为 where 条件。

现在有了whereOr,你实际上必须这样称呼它:

->whereAgeOrGender(18, 'male');

这意味着它为您提供了一种简单的语法,但远不如“真实”的 wheres 灵活。例如,它将始终使用= 运算符。所以绝对不适合你的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 2015-02-22
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 2018-06-07
    相关资源
    最近更新 更多