我已经放置了两个输入标签来获取开始日期和结束日期。我想使用 laravel 查询构建器的 wherebetween 子句来接收这些输入并在这两天之间取回数据
blade.php 文件
<form action="{{ route('search.between.dates',[$expense_category_data[0]->id]) }}" method="POST">
@csrf
<h3 style="color:Blue; text-align: center;text-decoration:underline"><b>Filter Date </b></h3>
<input class="form-control" type="text" id="datepicker1" name="start_date" placeholder="Start Date" style="width: 20%; display: inline-block; margin-left:20%; margin-bottom: 2% ">
<input class="form-control" type="text" id="datepicker2" name="end_date" placeholder="End Date" style="width: 20%; display: inline-block; margin-left:20%; margin-bottom: 2%">
<br>
<button type="submit" class="btn btn-success" style="position: absolute;
left: 45%;">Find Expenses</button>
</form>
脚本
<script>
$( function() {
$( "#datepicker1" ).datepicker({
dateFormat: 'dd-mm-yy'
});
} );
$( function() {
$( "#datepicker2" ).datepicker({
dateFormat: 'dd-mm-yy'
});
} );
</script>
控制器
public function search_between_dates(Request $request,$exp_category_id){
$start_date = dmyToYmd($request->start_date);
$end_date = dmyToYmd($request->end_date);
$expense_category_data = DB::table('expense_category')
->leftjoin('expense_table','expense_category.id','=','expense_table.exp_category')
->select('expense_category.id as category_id','expense_category.exp_category AS category_name','expense_category.exp_category_details','expense_category.exp_category_image','expense_table.*')
->where('expense_category.id',$exp_category_id)
->whereBetween('expense_table.exp_date',[date($start_date),date($end_date)])
->get();
return view('admin.Expense_sheet.view_expense_category_details',compact('expense_category_data'));
}
答案 0 :(得分:0)
我不知道函数 dmyToYmd
在做什么。 My Sql
使用 Y-m-d
的日期格式,而您的 datepicker
使用格式 dd-mm-yy
这就是它没有获取预期结果的原因。您将需要使用碳来格式化日期。
->whereBetween('expense_table.exp_date',[Carbon/Carbon::createFromFormat('d-m-y', $start_date)->format('Y-m-d'),Carbon/Carbon::createFromFormat('d-m-y', $end_date)->format('Y-m-d')])
/*
it is sending the format
dd-mm-yy => 01-01-21
Mysql required format
Y-m-d => 2021-01-01
*/