Get RAW SQL Query from Eloquent with Eager Loading
我有以下代码:
1 2 3 4 | $books = Book::with(array('score' => function($query) use ($id) { $query->where('media_type_id','=',$id)->orderBy('sorting_score','ASC'); }))->get(); |
我有一个带书的桌子,一个带media_score的桌子-我有一个归属关系。
当我执行toSQL()时;它返回我只从书中选择*的信息,而不是急切加载的信息。
我需要等价的紧急加载,因为我希望使用一个缓存系统(不使用牢记功能),所以我想使用原始查询作为键。
不要转储查询日志,因为它发生在查询运行后。
尝试由barryvdh使用此插件。它确实可以帮助您调试laravel应用。它包括几个收集器
QueryCollector: Show all queries, including binding + timing. RouteCollector: Show information about the current Route. ViewCollector: Show the currently loaded views. (Optionally: display the shared data) EventsCollector: Show all events. etc.
快乐编码;
尝试
1 2 3 4 5 6 7 | DB::enableQueryLog(); Book::with(array('score' => function($query) use ($id) { $query->where('media_type_id','=',$id)->orderBy('sorting_score','ASC'); }))->get(); $query_dump = DB::getQueryLog(); |
并打印