Hi I got a if elseif block like this:
public function competetionList(Request $request) {
$currentAction = \Route::currentRouteAction();
// list($controller, $method) = explode('@', $currentAction);
// $controller = preg_replace('/.*\\\/', '', $controller);
// $method = preg_replace('/.*\\\/', '', $method);
// $data = $this->checkPermission($controller, $method);
$data = true;
if($data == true) {
if($request->sport_id && $request->sport_type && $request->to_date && $request->from_date) {
$competetion = Competetion::with(['sports','sporttype'])
->where('delete' , '=' , 0)
->where('sport_id' , $request->sport_id)
->where('sport_type',$request->$sport_type)
->whereBetween('date',[$request->from_date.' 00:00:00' , $request->to_date.' 23:59:59']);
} elseif($request->sport_id && $request->sport_type && !$request->to_date && !$request->from_date) {
$competetion = Competetion::with(['sports','sporttype'])
->where('delete' , '=' , 0)
->where('sport_id', $request->sport_id)
->where('sport_type',$request->sport_type);
} elseif($request->sport_id && !$request->sport_type && !$request->to_date && !$request->from_date) {
$competetion = Competetion::with(['sports','sporttype'])
->where('delete' , '=' , 0)
->where('sport_id' , $request->sport_id);
} elseif(!$request->sport_id && $request->sport_type && !$request->to_date && !$request->from_date) {
$competetion = Competetion::with(['sports','sporttype'])
->where('delete' , '=' , 0)
->where('sport_type' , $request->sport_type);
} elseif(!$request->sport_id && $request->sport_type && $request->to_date && $request->from_date) {
$competetion = Competetion::with(['sports','sporttype'])
->where('delete' , '=' , 0)
->where('sport_type' , $request->sport_type)
->whereBetween('date',[$request->from_date.' 00:00:00' , $request->to_date.' 23:59:59']);
} elseif($request->sport_id && !$request->sport_type && $request->to_date && $request->from_date) {
$competetion = Competetion::with(['sports','sporttype'])
->where('delete' , '=' , 0)
->where('sport_id' , $request->sport_id)
->whereBetween('date',[$request->from_date.' 00:00:00' , $request->to_date.' 23:59:59']);
} elseif(!$request->sport_id && !$request->sport_type && !$request->to_date && !$request->from_date) {
$competetion = Competetion::with(['sports','sporttype'])
->where('delete' , '=' , 0);
}
$competetionData = $competetion->orderBy('name')->get();
$response = [
'status' => true,
'message' => 'Data Avialable',
'data' => $competetionData
];
return response()->json($response); //@ sending response
} else {
$response = [
'status' => false,
'message' => 'You Dont Have Permission To do it!',
];
return response()->json($response); //@ sending response
}
}
My Question is how can i make it simpler ?? Because There will be more filters in future !
Kindly Help Me in this method
Aucun commentaire:
Enregistrer un commentaire