2016-12-18 11 views
0
$datas=Elan::orderBy('created_at','desc')->where('status', 1)->take(4)->toSql();  
     dd($datas); 

"laravel 5.2"でクエリを書きました。私は機能toSql() でSQLクエリとして表示され、結果は次のとおりです。laravel return '?' WHERE句で '1'の代わりに '1'を使用します。

"select * from `els` where `status` = ? order by `created_at` desc limit 4" 

あなたはそこにあることがわかりますか?マーク。これが私のクエリが機能しない理由です。なぜそれは私を返すのですか? 1つではなく私もこの '1'の同じ結果のように試しました。

+0

戻っていませんか?値のプレースホルダです。 $ datas = Elan ::( 'status'、1) - > orderBy( '​​created_at'、 'desc') - > take(4) - > get();のような雄弁なクエリーを書いてみてください。 – karmendra

+0

toSql()の予想される動作。完全なSQLを参照する必要がある場合は、mysqlクエリログを確認してください。 – astroanu

答えて

1

?の意味を理解したい場合は、バインディングについてお読みください。デバッグしたいとクエリを見れば、あなたはこのdebugbarをインストールすることができます

https://laravel.com/docs/5.3/database#running-queries

0

?は、SQLインジェクションに対して妨げる結合パラメータのために使用されています。

あなたはパラメータ値で実行された生のSQLクエリを確認したい場合は、下記のコード試してみてください。

DB::enableQueryLog(); 
$datas=Elan::orderBy('created_at','desc')->where('status', 1)->take(4)->get(); 
dd(DB::getQueryLog()); 

・ホープ、このことができます!

関連する問題