我是Laravel 5的初学者。我有一个表:用户名为CreateDate,Type和Channel。
我有一个用户列表,我在View中选择:Trans StartDate,Trans EndDate,Type和Channel。
我想展示:Tras StartDate < CreateDate < Trans EndDate
包含Type和Channel。 name="time_start", "time_end", "type", "channel"
。
我的路线:
Route::post('user', 'CSKHController@index');
我的控制器:
public function index() {
$start = Input::get ( 'time_start' );
$end = Input::get ( 'time_end' );
$articles = KhachHang::all()->whereBetween('CreateDate', [$start, $end])->get();
return view('admin/layouts/test', compact('stt','article'))->withDetails($articles);
}
请帮帮我!
答案 0 :(得分:2)
老问题,但答案并不是很好。使用whereBetween()
,自至少5.0 docs
$articles = KhachHang::whereBetween('CreateDate', [$start, $end])->get();
答案 1 :(得分:2)
只需将此添加到您的口才查询中即可。
->whereBetween('your_field', [$from, $to])->get();
答案 2 :(得分:1)
要检查两个日期,您可以使用此(以及其他选项):
$articles = KhachHang::where('CreateDate', '>=', $start)
->where('CreateDate', '<=', $end)->get();
您必须确保日期格式为“Y-m-d”,否则代码将无效。
答案 3 :(得分:1)
这是我如何在 laravel 5.6 项目中使用雄辩的示例。
my-view.blade.php
简化的html形式:
<form action="my-route" method="POST">
{{ csrf_field() }}
<input type="date" name="from">
<input type="date" name="to">
<button type="submit">Submit</button>
</form>
MyController.php
use Illuminate\Support\Carbon;
// ...
$request->validate([
'from' => 'required|date',
'to' => 'required|date',
]);
$from = Carbon::parse($request->from)
->startOfDay() // 2018-09-29 00:00:00.000000
->toDateTimeString(); // 2018-09-29 00:00:00
$to = Carbon::parse($request->to)
->endOfDay() // 2018-09-29 23:59:59.000000
->toDateTimeString(); // 2018-09-29 23:59:59
$models = Model::whereBetween('created_at', [$from, $to])->get();
// do whatever you want with the query results...
其他资源