Моя функция в контроллере для получения данных, когда пользователь ищет ajax.
Это мой код:
$receiptNum = Request::get('receiptNum');
// echo $receiptNum = 123456
DB::connection()->enableQueryLog();
$q = DB::table('tbl_receipt AS r')
->join('company AS com', 'r.com_id', '=', 'com.com_id')
->join('branches AS b', 'com.b_id', '=', 'b.b_id')
->join('employee AS e', 'r.created_by', '=', 'e.e_id')
->where('r.receipt_code','=',$receiptNum)
->get();
$query = DB::getQueryLog();
var_dump($query);
Я не знаю, чего не хватает в моем коде, это покажет raw sql следующим образом:
SELECT *
FROM "tbl_receipt" AS "r"INNER JOIN "company" AS "com" ON "r"."com_id" = "com"."com_id"INNER JOIN "branches" AS "b" ON "com"."b_id" = "b"."b_id"INNER JOIN "employee" AS "e" ON "r"."created_by" = "r"."e_id"WHERE "r"."receipt_code" = ?
Я пытаюсь заменить $receiptNum
по количеству 123
для теста это тоже шоу ?
в raw sql
Пожалуйста, помогите мне решить это.
«?» Есть потому, что это заявление.
Если вы хотите строку, которую вы должны заменить.
Я был вдохновлен https://gist.github.com/JesseObrien/7418983
и например я делаю это.
$q = DB::table('tbl_receipt AS r')
->join('company AS com', 'r.com_id', '=', 'com.com_id')
->join('branches AS b', 'com.b_id', '=', 'b.b_id')
->join('employee AS e', 'r.created_by', '=', 'e.e_id')
->where('r.receipt_code','=','123') ;
$sql = $q->toSql();
// $bindings = $q->getBindings();
foreach($q->getBindings() as $binding)
{
$value = is_numeric($binding) ? $binding : "'".$binding."'";
$sql = preg_replace('/\?/', $value, $sql, 1);
}
var_dump($sql);
Других решений пока нет …