Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Laravel中查询不';不要质疑正确的结果_Php_Laravel - Fatal编程技术网

Php 在Laravel中查询不';不要质疑正确的结果

Php 在Laravel中查询不';不要质疑正确的结果,php,laravel,Php,Laravel,我尝试在Laravel中执行以下查询模型: $num_stamps = Groupsheetstamp::where('status', '=', 'active') ->where('user_id', '=', $user->id) ->whereGroup_sheet_id($sheet->id)

我尝试在Laravel中执行以下查询模型:

$num_stamps = Groupsheetstamp::where('status', '=', 'active')
                                  ->where('user_id', '=', $user->id)
                                  ->whereGroup_sheet_id($sheet->id)
                                  ->orWhere(function ($query) use ($sheet, $user) {
                                      $query->where('original_group_sheet_id', $sheet->id);
                                  })
                                  ->get();
但是,这仍然返回所有状态为
非活动的
的groupstamp,并且它完全检查
用户id
的where子句

我在查询模型中做错了什么,因为它没有查询回正确的结果

查询的输出示例如下所示,
user id=7
sheet id=12

"id" => 23
"group_sheet_id" => 12
"groupsheet_id" => 12
"group_id" => 3
"original_group_sheet_id" => 12
"user_id" => 1
"comment" => ""
"status" => "inactive"
"start_time" => "2017-03-16 17:09:06"
"end_time" => "2017-03-16 23:06:39"
"stamp_duration" => 6
"hours" => 0
"minutes" => 0
"themonth" => "03.17"
"manual_time" => ""
"created_at" => "2017-03-16 23:06:33"
"updated_at" => "2017-03-16 22:09:06"

这取决于你期望的确切结果。如果要按组或关系进行搜索,应使用闭包。举个例子:

$num_stamps = Groupsheetstamp::where('status', 'active')
    ->where('user_id', $user->id)
    ->where(function($q) use ($sheet, $user) {
        $q->where('group_sheet_id', $sheet->id)
          ->orWhere('original_group_sheet_id', $sheet->id);
    })
    ->get();
试试这个

$num_stamps = Groupsheetstamp::where('status', '=', 'active')
                              ->where('user_id', '=', $user->id)
                              ->where('group_sheet_id',$sheet->id)
                              ->orWhere(function ($query) use ($sheet, $user) {
                                  $query->where('original_group_sheet_id', $sheet->id);
                              })
                              ->get();