Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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 whereBetween和orWhere可获取日期范围内的数据_Php_Mysql_Laravel - Fatal编程技术网

Php whereBetween和orWhere可获取日期范围内的数据

Php whereBetween和orWhere可获取日期范围内的数据,php,mysql,laravel,Php,Mysql,Laravel,我想得到创建的日期范围,这里是我的示例表 id status created_at 1 1 2018-05-10 10:53:54 2 2 2018-05-10 10:53:54 3 2 2018-05-9 11:53:54 在我的控制器中 $this->to = 2018-05-10; $this->from = 2018-05-09; Table::whereBetween('created_at', [$th

我想得到创建的日期范围,这里是我的示例表

id    status  created_at
1      1      2018-05-10 10:53:54
2      2      2018-05-10 10:53:54
3      2      2018-05-9 11:53:54
在我的控制器中

$this->to = 2018-05-10;
$this->from = 2018-05-09;
Table::whereBetween('created_at', [$this->from, $this->to]) 
                            ->orwhere('created_at', 'like', '%' .$this->to. '%')
                            ->where('status', 2); 
在这个查询中,它会打印状态为1和2的所有数据。我如何才能只获得状态2

我试着去死,因为我得到的查询是这样的

select * from `table` where `created_at` between '2018-05-09' and '2018-05-10' or `created_at` like '%2018-05-10%' and `status` = '2'

您可以尝试子查询
whereBetween('created_at',[$this->from,$this->to])
->或where('created_at','like','%。$this->to'%')


您可以尝试子查询
whereBetween('created_at',[$this->from,$this->to])
->或where('created_at','like','%。$this->to'%')

您可以搜索“嵌套/子查询eloquent laravel”以获取更多信息


您可以搜索“嵌套/子查询雄辩的laravel”以获取更多信息

日期范围?我对6月4日很生气。只需去掉
->或where(…)
它不会向查询添加任何内容,因为它只是重复
之间的
结束条件。日期愤怒?我对6月4日很生气。只要去掉
->或where(…)
它就不会在查询中添加任何内容,因为它只是在
之间重复
的结束条件。为什么当我放置->where(函数($query)…它说解析错误:语法错误,意外的'->'为什么当我放置->where(函数($query)时…它说解析错误:语法错误,意外的'->'
$from = $this->from;
$to = $this->to;
Table::where('status', 2)
            ->where(function ($query) use ($from,$to) {
                    $query->whereBetween('created_at', [$from, $to])
                                ->orwhere('created_at', 'like', '%' .$to. '%');
            });
 Table::where(function($q) use ($from,$to)){
      $q->whereBetween('created_at', [$from, $to])
        ->orwhere('created_at', 'like', '%' .$to. '%')
    }->where('status', 2);