【问题标题】:Laravel: WhereNull, OrWhere, is ignoring WhereRawLaravel:WhereNull,OrWhere,忽略了 WhereRaw
【发布时间】:2017-03-30 11:20:52
【问题描述】:

在我的控制器中,我在 DB Query 中使用 Laravel WhereNullOrWhereWhereRaw。它正在拉入所有结果,但问题是它看起来像是在拉入所有内容并忽略了最后一个 Where 子句。我在其他控制器上以不同的方法使用了它,它工作正常。是否有特定的订单或我缺少的东西?

不起作用(忽略 WhereRaw 并显示所有结果)

$lists = DB::table('statuses')
                    ->whereNull('company_id')
                    ->orWhere('company_id', '=', Auth::user()->company_id)
                    ->whereRaw("FIND_IN_SET('Task',assigned_to)")
                    ->get();

这适用于其他控制器,在没有 whereRaw 的情况下用作不同的方法:

return Status::whereNull('company_id')->orWhere('company_id', '=', Auth::user()->company_id)
                    ->orderBy('created_at', 'asc')
                    ->get();

示例数据库

来源链接:https://laravel.com/docs/5.3/queries#where-clauses

【问题讨论】:

    标签: php mysql laravel


    【解决方案1】:

    使用DB::raw 而不是whereRaw

    ->where(DB::raw("FIND_IN_SET('Task',assigned_to)"))
    

    【讨论】:

    • 感谢您的回复,不幸的是,这给了我相同的结果,所以没有改变
    • 你能分享使用toSql()987654324之前和之后生成的查询吗
    • 完整查询位于“不起作用(忽略 WhereRaw 并显示所有结果)”行下方。如果您正在寻找其他东西,请告诉我
    猜你喜欢
    • 2023-03-04
    • 1970-01-01
    • 2023-02-21
    • 2016-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 2019-07-31
    相关资源
    最近更新 更多