Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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/5/sql/68.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 按月份过滤,格式为';Y-m-d';_Php_Sql_Laravel_Eloquent - Fatal编程技术网

Php 按月份过滤,格式为';Y-m-d';

Php 按月份过滤,格式为';Y-m-d';,php,sql,laravel,eloquent,Php,Sql,Laravel,Eloquent,我有一个日期,格式为Y-m-d。我怎样才能按月过滤呢?我用数字来指定月份,比如一月=1,二月=2等等 public function scopegetmonthleavereport($query,$payroll_employee_id,$month) { $query->join('tbl_payroll_leave_employee_v2','tbl_payroll_leave_schedulev2.payroll_leave_employee_id','=','

我有一个
日期
,格式为
Y-m-d
。我怎样才能按月过滤呢?我用数字来指定月份,比如一月=1,二月=2等等

public function scopegetmonthleavereport($query,$payroll_employee_id,$month)
{

         $query->join('tbl_payroll_leave_employee_v2','tbl_payroll_leave_schedulev2.payroll_leave_employee_id','=','tbl_payroll_leave_employee_v2.payroll_leave_employee_id')
         ->join("tbl_payroll_employee_basic","tbl_payroll_leave_employee_v2.payroll_employee_id","=","tbl_payroll_employee_basic.payroll_employee_id")
         ->join("tbl_payroll_leave_tempv2","tbl_payroll_leave_employee_v2.payroll_leave_temp_id","=","tbl_payroll_leave_tempv2.payroll_leave_temp_id")
         ->select(DB::raw('tbl_payroll_employee_basic.payroll_employee_id , tbl_payroll_leave_schedulev2.payroll_schedule_leave, tbl_payroll_employee_basic.payroll_employee_display_name, tbl_payroll_leave_schedulev2.payroll_leave_temp_with_pay, tbl_payroll_leave_tempv2.payroll_leave_type_id, tbl_payroll_leave_employee_v2.payroll_leave_employee_id, tbl_payroll_leave_schedulev2.consume, tbl_payroll_leave_employee_v2.payroll_leave_temp_hours, sum(tbl_payroll_leave_schedulev2.consume) as total_leave_consume, (tbl_payroll_leave_employee_v2.payroll_leave_temp_hours - sum(tbl_payroll_leave_schedulev2.consume)) as remaining_leave'))
         ->groupBy('tbl_payroll_leave_employee_v2.payroll_leave_temp_id')
         ->where('tbl_payroll_leave_schedulev2.payroll_leave_schedule_archived',0)
         ->where('tbl_payroll_leave_employee_v2.payroll_employee_id', $payroll_employee_id)
         ->whereBetween('tbl_payroll_leave_schedulev2.payroll_schedule_leave', $date);  //where i want to put the date


    return $query;
}

试试里面的like和regex, 使用类似以下内容:

->Where('date', 'like', '%-' .$month. '-%')->get();

我没有试过

上帝的查询生成器是如此丑陋,但是在SQL中你确实做到了,
WHERE MONTH(date\u field)=:MONTH
提醒我必须用SQL lexer/parser构建ORM…@artisticfenix我怎么能用laravel bro中的雄辩来实现呢?hahaI不知道我没有使用Laravel,但在我看来(从可读性的角度来看),这个查询生成器看起来像是垃圾,。我写SQL已经有7年了,
whereMonth
我是用这行代码写的哈哈。谢谢你的线索,当然,我希望我能直接告诉你。但我的工作基本上是这样的,总是看起来更干净。我的意思是,我得到了ORMs,我很遗憾地使用了它们(教义),我发现它们最终就像我的一副手铐。这个例子将帮助你
->Where('date', 'like', '%-' .$month. '-%')->get();