Laravel如何检查datatable ajax发送的请求是否为null

问题描述 投票:0回答:1

我想检查用于过滤的请求是否为空,所以如果为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 );
}
laravel datatable
1个回答
0
投票

如果您想确定请求中是否存在值且不为空,则可以使用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 );
}
© www.soinside.com 2019 - 2024. All rights reserved.