我有这个方法:
public function indexGuest($idAzienda, Request $request){
$companyId = $idAzienda;
$ddts = Ddt::where('company_id',$companyId);
$ddt_urls= Ddt_file_url::all();
if($request->start_date || $request->end_date){
$ddts->whereBetween('created_at',[new Carbon($request->start_date),new Carbon($request->end_date)]);
}
$ddts->paginate(10);
return view('guest.ddt-management')->with('ddts', $ddts)->with('ddt_urls',$ddt_urls)
->with('companyId',$companyId);
}
我的start_date
和end_date
来自"yyyy-mm-dd"
等字符串。
我试图将它直接传递给查询,就像示例中的碳对象一样没有希望!
执行查询后(现在只有没有wherebeeteween子句的那个)我不能将方法“paginate”应用于集合,不会引发错误但是当我将它传递给视图时,“link()”方法没有工作并再次提出错误。 哪里错了?
Laravel 5.4
答案 0 :(得分:1)
像这样构建你的where
。
public function indexGuest($idAzienda, Request $request) {
[...]
$ddts = Ddt::where('company_id', $companyId)
->where(function($query) use ($request) {
if($s = $request->get("start_date") {
$s_date = Carbon::parse($s)->format("Y-m-d");
$query->whereDate("created_at", ">=", $s_date);
}
if($e = $request->get("end_date") {
$e_date = Carbon::parse($e)->format("Y-m-d");
$query->whereDate("created_at", "<=", $e_date);
}
})
->paginate(10);
[...]
}