Php DB::select过程从输入请求返回空数组

Php DB::select过程从输入请求返回空数组,php,mysql,laravel,Php,Mysql,Laravel,我在控制器中创建了此函数: public function productInvoiceListTest(Request $request){ $var = $request->client_id; $date = "2019-12-30"; $sql = 'CALL proc_invoice_product_list("'.$var.'","i.invoice_date","2019-12-30","","")'; $productinvoice =

我在控制器中创建了此函数:

public function productInvoiceListTest(Request $request){
    $var = $request->client_id;
    $date = "2019-12-30";

    $sql = 'CALL proc_invoice_product_list("'.$var.'","i.invoice_date","2019-12-30","","")';

    $productinvoice = DB::select($sql);
    var_dump($productinvoice);
}
当我运行代码时,它返回空数组,但当我硬编码
$var
的值时,它工作:

public function productInvoiceListTest(Request $request){
    $var = 'dasdsdasdsadsadsa';
    $date = "2019-12-30";

    $sql = 'CALL proc_invoice_product_list("'.$var.'","i.invoice_date","2019-12-30","","")';

    $productinvoice = DB::select($sql);
    var_dump($productinvoice);
}

为什么当我使用请求输入时不能调用我的过程?如何读取输入请求?

您可能需要首先确认正在使用dd帮助程序将客户端id传递给您的productInvoiceListTest方法

public function productInvoiceListTest(Request $request){
    dd($request->all());
}

若客户机id是在productInvoiceListTest方法中传递的请求实例的一部分,那个么您可以使用$request->input('client_id')方法访问它。如果它不是请求实例的一部分,请确保从方法调用或重定向到productInvoiceListTest,传递客户端id

也许您可以尝试
$var=$request->input('client\u id')如何访问请求输入?使用
$request->input('client_id')它也不起作用,我使用
$request->client\u id
访问,我尝试了
$request->client\u id
的回声值,它按预期返回,但使用内部
调用…
不起作用
$var=$request->client\u id
isinya apa bro@aepsaeepudin?
数组:2[“client\u id”=>“QW9a414bc5-1263-11e9-881c-001e67fa8453-ID”“日期”=>“2019-12-30”]
它的返回正常,然后现在尝试通过使用$var=$request->client\u id从请求实例中提取它来访问client\u id;并确认是否看到它,如果看到,然后尝试在查询中使用它,它的返回也正常,我认为laravel具有出于安全原因不允许传递直接参数的功能,可能,,,Try:$sql=DB:raw('call proc_invoice_product_list(?,,?),[var,i.invoice_date,$date]);