繁体   English   中英

控制器变量未显示在查询生成器Laravel中

[英]Controller Variable not Showing up in Query Builder Laravel

我在Laravel中遇到一个奇怪的问题。

下面是我的一个控制器中的索引函数。

public function index($merchant_url_text)
{
    //
    $deals = DB::table('tbl_deal')
            -> join ('tbl_merchant', 'tbl_deal.merchant_id', '=', 'tbl_merchant.merchant_id')
            -> where ('merchant_url_text', $merchant_url_text) -> toSql();
    //return $merchant_url_text.$deal_id;
            dd($deals);
            //return $merchant_url_text;
}

如您所见,我正在从路线传递merchant_url_text。

Route::get('/testroute/{merchant_url_text}', ['uses' =>'dealsVisibleController@index']);

当我尝试通过打印来调试查询时,我得到

"select * from `tbl_deal` inner join `tbl_merchant` on `tbl_deal`.`merchant_id` = `tbl_merchant`.`merchant_id` where `merchant_url_text` = ?"

这意味着查询构建器没有读取$ merchant_url_text变量。 但是,当我只返回该变量时,它将被打印出来。

只是无法弄清楚为什么查询构建器在索引函数中可用时无法在查询中包含$ merchant_url_text变量。

有什么建议么。

我很确定您的代码是正确的。 SQL输出函数toSql()不显示变量的值,而仅打印出一个? 出于安全原因。

您可以使用来访问所有查询

$queries = DB::getQueryLog();

它还将查询参数打印为array

要获取最后一个查询:

dd(end($queries));

禁用日志:

DB::connection()->disableQueryLog();

有关更多信息,请参阅文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM