我在Laravel工作,我有兴趣检查包含with()语句的Eloquent查询生成的SQL语句.出于某种原因,我只得到主查询.例如,当我跑
class Child extends EloquentVersioned {
public function childRequests()
{
return $this->hasMany('ChildRequest');
}
}
$childQuery = Child::orderBy('last_name')->orderBy('first_name')->with( 'childRequests');
return $childQuery->toSql();
Run Code Online (Sandbox Code Playgroud)
我回来了:
select `children`.* from `children` order by `last_name` asc, `first_name` asc
Run Code Online (Sandbox Code Playgroud)
如何获取with('childRequests')查询的SQL?
实际上,当使用with然后Laravel使用另一个查询,所以你没有得到该查询输出,但如果你使用,DB::getQueryLog()那么你将获得所有的查询日志,并获得你的日志,你可以运行实际的查询,例如:
Child::orderBy('last_name')->orderBy('first_name')->with( 'childRequests')->get();
Run Code Online (Sandbox Code Playgroud)
现在试试这个:
dd(DB::getQueryLog()); // an array of all queries
Run Code Online (Sandbox Code Playgroud)
您将获得查询的输出,您可以使用以下命令找到最后一个查询:
$queries = DB::getQueryLog();
dd(end($queries)); // only last query
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18417 次 |
| 最近记录: |