我想检查用于过滤的请求是否为空,所以如果为null则显示数据表中的所有数据,否则过滤结果取决于请求的值
这里控制器
public function getCustomFilterData(Request $request)
{
$arrStart = explode("/", Input::get('start_date'));
$arrEnd = explode("/", Input::get('end_date'));
$start = Carbon::create($arrStart[2], $arrStart[0], $arrStart[1], 0, 0, 0);
$end = Carbon::create($arrEnd[2], $arrEnd[0], $arrEnd[1], 23, 59, 59);
$min = $request->start_amount;
$max = $request->end_amount;
$vendorTableName= with(new Vendors())->getTable();
$categoryTableName= with(new Excategories())->getTable();
$orders =Checks::select(["checks.*","vendors.vendor_name","excategories.category_name"])->Wherebetween('amount',[$min,$max])->between($start, $end)->leftJoin($vendorTableName,$vendorTableName.".vendor_id","=","checks.vendor_id")->leftJoin($categoryTableName,$categoryTableName.".category_id","=","checks.category_id");
return Datatables::of($orders)->make( TRUE );
}
如果您想确定请求中是否存在值且不为空,则可以使用the has方法:
if ($request->has('name')) {
//
}
public function getCustomFilterData(Request $request)
{
$vendorTableName = with(new Vendors())->getTable();
$categoryTableName = with(new Excategories())->getTable();
$orders = Checks::select(["checks.*","vendors.vendor_name","excategories.category_name"]);
if($request->has('start_amount') && $request->has('end_amount')) {
$min = $request->start_amount;
$max = $request->end_amount;
$orders->Wherebetween('amount',[$min,$max]);
}
if($request->has('start_date') && $request->has('end_date')) {
$arrStart = explode("/", Input::get('start_date'));
$arrEnd = explode("/", Input::get('end_date'));
$start = Carbon::create($arrStart[2], $arrStart[0], $arrStart[1], 0, 0, 0);
$end = Carbon::create($arrEnd[2], $arrEnd[0], $arrEnd[1], 23, 59, 59);
$orders->between($start, $end);
}
$orders = $orders->leftJoin($vendorTableName,$vendorTableName.".vendor_id","=","checks.vendor_id")
->leftJoin($categoryTableName,$categoryTableName.".category_id","=","checks.category_id")
->get();
return Datatables::of($orders)->make( TRUE );
}