I'm using Laravel 5.8 and use ORM to get results from the database. I want to build each parameter request equal sql condition where. I don't know how to call the method with a variable name like $orders=Orders::{$strSQL}; please help me solve this.
if(($request->customer_created_from)&&($request->customer_created_to))
{
$startDate=$request->customer_created_from;
$finishDate=$request->customer_created_to;
$strSQL='';
$strSQL=$strSQL."where('user_id',".Auth::user()->id.")->whereBetween('created_at',[".$startDate.",".$finishDate."])";
if($request->package_status_id){
//$orders=Orders::where('user_id',Auth::user()->id)->whereBetween('created_at',[$startDate,$finishDate])->wherein('status_id',$request->package_status_id)->get();
$status_ids='[';
for($i=0;$i<count($request->package_status_id);$i++){
$status_ids=$status_ids.$request->package_status_id[$i].",";
}
if($status_ids){
$status_ids=rtrim($status_ids, ",");
$status_ids=$status_ids.']';
}
$strSQL=$strSQL."->wherein("."status_id".",".$status_ids.")->get()";
$orders=Orders::{$strSQL};
//$req = $class::{$function_name}();
return view("admin.customer",compact('orderstatus','startDate','strSQL','finishDate','orders'));
}