2

Laravel 4.2では、コンパイル済みクエリを取得したいと考えています。

これは私が持っているものです:

$product = Product::where('id', '=', '100')->get();

次のようなコンパイル済みクエリが必要です。

select * from products where id = 100 

質問の目的は、別のクエリのサブクエリとして使用したいです。

Class GrammerClass MySQLを検索して見つけましたが、その解決策が見つかりませんでした。

解決策はありますか?

あなたの助けをいただければ幸いです。

4

4 に答える 4

4

最も簡単な方法は、おそらく、クエリがどうなるかではなく、実行されたばかりのクエリを見つけることです。このようなもの:

function latestQuery()
{
    $queries = DB::getQueryLog();
    return end($queries);
}

うまくいけば、それはあなたの目的と同じです。

于 2014-12-10T05:49:27.933 に答える
1

ルートファイルにイベントリスナーを登録できます(開発段階)。これにより、laravelクエリイベントとvar_dump実行されたクエリがリッスンされます。

Event::listen('illuminate.query', function($sql)
{
    var_dump($sql);
});

しかし、これは面倒なことになります。したがって、Clockworkのようなものを使用することをお勧めします。実行されたすべてのクエリをブラウザで表示できます。

于 2014-12-10T06:02:23.420 に答える