2015-06-14 67 views
1

http://laravel.com/docs/5.1/queries使用 - >其中(...)對我而言失敗的任何示例。生成的查詢始終具有問號而不是傳遞的值。Laravel query builder'where'method is broken

代碼:

var_dump(
    DB::table('users') 
    ->where('votes', '>=', 100) 
    ->toSql() 
); 

輸出:

string 'select * from `users` where `votes` >= ?' (length=40) 
+4

它不破。 Eloquent將在實際查詢中用值'100'代替'?'。 –

+0

@JakeOpena我認爲 - > toSql()應該提供一個實際的查詢,我錯了嗎? –

+0

它在準備好的變量綁定到它之前生成查詢。 –

回答

1

正如你的問題的評論中提到,沒有什麼是壞了,運行->toSql()將顯示查詢的任何值綁定到它。

如果您需要看到的是綁定到查詢中的值,你可以使用DB::listen()

DB::listen(function($sql, $bindings, $time) { 
    var_dump($sql); // this is the query 
    var_dump($bindings); // these are the values bound to the query 
    var_dump($time); // time query took to process 
}); 

你會發現這篇文章非常有用:https://scotch.io/tutorials/debugging-queries-in-laravel

+1

很酷,謝謝! –

+0

不客氣! – haakym