【问题标题】:Use if condition error on the query builder in laravel在 laravel 中的查询生成器上使用 if 条件错误
【发布时间】:2018-03-24 01:05:06
【问题描述】:

当我将keyword 发送到控制器时,刀片工作正常

$search_alls = DB::table($table)
                  ->where('title', '=', $keyword)
                  ->where('status','=',0)
                  ->orderBy($wanttime_by, $wanttime_order)
                  ->paginate(9);

当我没有将keyword 发送到控制器时刀片显示错误

$search_alls = DB::table($table);
if ($keyword) {
    $search_alls->where('title', '=', $keyword);
}
$search_alls
    ->where('status','=',0)
    ->orderBy($wanttime_by, $wanttime_order)
    ->paginate(9);

刀片视图是

{{ $search_all->id }}

错误信息是

未定义属性:Illuminate\Database\MySqlConnection::$id

【问题讨论】:

  • 你能显示所有刀片视图代码吗?
  • 另外,您应该将$search_alls = $search_alls->where... 放在 if 和 if 之后,以便更新变量。
  • 如果没有通过$keyword,你在视图中执行dd($search_all)会得到什么?
  • 您在刀片中使用了 foreach 吗?因为你有search_alls和search_all……不发送关键字时search_alls的内容是什么?检查
  • @thisiskelvin 我解决了这个问题,感谢您的帮助!

标签: laravel if-statement query-builder


【解决方案1】:
$search_alls = DB::table($table);
        if ($keyword) {
            $search_alls=$search_alls->where('title', '=', $keyword);
        }

        $search_alls=$search_alls
        ->where('status','=',0)
        ->orderBy($wanttime_by, $wanttime_order)
        ->paginate(9);

感谢@thisiskelvin!和大家的帮助!

【讨论】:

    猜你喜欢
    • 2021-07-25
    • 2021-09-07
    • 2018-08-03
    • 1970-01-01
    • 2021-12-13
    • 2017-03-30
    • 2020-10-24
    • 2019-04-18
    • 2016-11-06
    相关资源
    最近更新 更多