Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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_Mysql_Laravel - Fatal编程技术网

Php Laravel查询生成器:意外输出

Php Laravel查询生成器:意外输出,php,mysql,laravel,Php,Mysql,Laravel,在过去的两个小时里,我一直在努力处理一个使用Laravel查询生成器创建的MySQL查询,但我不明白为什么一个参数似乎被忽略了 查询生成器生成的查询如下所示: select * from `deals` where ( ( `created_at` <= '2017-04-10 09:44:07' and `valid_until` >= '2017-04-10 09:44:07' ) or ( `created

在过去的两个小时里,我一直在努力处理一个使用Laravel查询生成器创建的MySQL查询,但我不明白为什么一个参数似乎被忽略了

查询生成器生成的查询如下所示:

select * from `deals` where
(
    (   
        `created_at` <= '2017-04-10 09:44:07' 
        and `valid_until` >= '2017-04-10 09:44:07'
    ) or (
        `created_at` <= '2017-04-10 09:44:07' 
        and `valid_until` <= '2017-04-10 09:44:07' 
        and `autodelete` = '2'
    ) or (
        `created_at` <= '2017-04-10 09:44:07'
        and `valid_until` <= '2017-04-10 09:44:07' 
        and `autodelete` = '0'
    ) or (
        `created_at` <= '2017-04-10 09:44:07'
        and `valid_until` is null
    )
    and `category_id` != '1'
) and `deals`.`deleted_at` is null
order by `order_date` desc, `created_at` desc 
limit 20 
offset 0
从'deals'中选择*
(
(   
`创建于“=”2017-04-10 09:44:07”
)或(
`创建于年月日(“Y-m-d H:i:s”);
})
->orwhere(函数($query){
//结束,但有可能上传收据

$query->where('created_at',“请仔细查看您的参数分组

我已经重新构造了查询

  • 删除了要使用whereNotIn的和类别_id!={Val}
  • 重新组合查询

    $query = Deal::where(function
             ($query){
                $query->where(function ($query) {
                                        // Active with an end date
                    $query->where('created_at', '<=', date("Y-m-d H:i:s"))
                    ->where('valid_until', '>=', date("Y-m-d H:i:s"));
                })
                ->orwhere(function ($query) {
                    // Ended, but with possibility to upload a receipt
                    $query->where('created_at', '<=', date("Y-m-d H:i:s"))
                    ->where('valid_until', '<=', date("Y-m-d H:i:s"))
                    ->where('autodelete', 2);
                })
                ->orwhere(function ($query) {
                                        // Ended, but keep it online
                    $query->where('created_at', '<=', date("Y-m-d H:i:s"))
                    ->where('valid_until', '<=', date("Y-m-d H:i:s"))
                    ->where('autodelete', 0);
                })
                ->orwhere(function ($query) {
                                        // No end date
                    $query->where('created_at', '<=', date("Y-m-d H:i:s"))
                    ->where('valid_until', null);
                });
            });
    
          if (!empty($deselectedCategories)) {
              $catList =array();
              foreach ($deselectedCategories as $key => $val) {
                  $catList[] = $val;
              }
           $query->whereNotIn('category_id', $catList);
        }
    $query->whereNull('deleted_at');
    $deals = $query->orderBy('order_date', 'desc')->orderBy('created_at', 'desc')->paginate($resultsPerPage);
    
    $query=Deal::where(函数)
    ($query){
    $query->where(函数($query){
    //带结束日期的活动
    $query->where('created_at','=',date(“Y-m-dh:i:s”);
    })
    ->orwhere(函数($query){
    //结束,但有可能上传收据
    
    $query->where('created_at','非常感谢您的努力:这看起来干净多了。但是,不幸的是,结果仍然是一样的。MySQL仍然忽略了类别id。从上面的示例来看,类别id为1的项目仍然包含在输出中。您是否有一些示例数据源来尝试从vers中生成的查询问题是:我不明白为什么,但当输出是这样时它会工作:使用查询生成器,我无法成功生成此查询。它一直停留在括号之间。我想了解为什么第一个版本不工作,因为在我看来它看起来是对的。正在使用的MySQL表只是一个简单的表没有任何高级设置。我看到你已经更新了你的代码,这一次它像一个魅力!非常感谢你!
    $query = Deal::where(function
             ($query){
                $query->where(function ($query) {
                                        // Active with an end date
                    $query->where('created_at', '<=', date("Y-m-d H:i:s"))
                    ->where('valid_until', '>=', date("Y-m-d H:i:s"));
                })
                ->orwhere(function ($query) {
                    // Ended, but with possibility to upload a receipt
                    $query->where('created_at', '<=', date("Y-m-d H:i:s"))
                    ->where('valid_until', '<=', date("Y-m-d H:i:s"))
                    ->where('autodelete', 2);
                })
                ->orwhere(function ($query) {
                                        // Ended, but keep it online
                    $query->where('created_at', '<=', date("Y-m-d H:i:s"))
                    ->where('valid_until', '<=', date("Y-m-d H:i:s"))
                    ->where('autodelete', 0);
                })
                ->orwhere(function ($query) {
                                        // No end date
                    $query->where('created_at', '<=', date("Y-m-d H:i:s"))
                    ->where('valid_until', null);
                });
            });
    
          if (!empty($deselectedCategories)) {
              $catList =array();
              foreach ($deselectedCategories as $key => $val) {
                  $catList[] = $val;
              }
           $query->whereNotIn('category_id', $catList);
        }
    $query->whereNull('deleted_at');
    $deals = $query->orderBy('order_date', 'desc')->orderBy('created_at', 'desc')->paginate($resultsPerPage);