2016-08-24 5 views
1

컨트롤러에서 사용자 검색 ajax를 실행할 때 데이터를 가져 오는 내 기능입니다. Laravel 5.2 데이터를 알 수없는 변수를 선택하십시오.

내 코드입니다 :

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" = ? 

내가가 납입 123에 의해 $receiptNum을 대체하려고 :

$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); 

내 코드에서 누락 모르겠어요,이 같은 원시 SQL을 보여이다 테스트, 그것도 raw sql? 표시, 해결 도와주세요.

+0

DB :: connection 이전에 var_dump ($ receiptNum)? – LorenzoBerti

+0

반환 '123456' – ching

+0

본 적이 있습니까? http://stackoverflow.com/questions/18236294/how-do-i-get-the-query-builder-to-output-its-raw-sql-query-as-a-string – LorenzoBerti

답변

1

"?" 그것은 진술이기 때문에 거기있다. 문자열을 원하면 교체해야합니다.

나는 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);