laravel 5.2 使用属于两个不同的查询
laravel 5.2 work with belongs to with two different queries
我已经记下这个查询
Controller
$data = User::where('name',$name)->with('country');
在用户模型中
function country () {
return $this->belongsTo('App\Country');
}
可见
echo $data->country->name;
它工作正常,但它 运行 2 个查询:(
Select * from user where name = "xyz"
Select * from country where id = "745"
我想停止这个,我只想通过一个查询获取数据。加入是解决方案,还有其他解决方案吗?
不幸的是,这就是 Eloquent 的工作方式。它使用两个查询,因为初始化模型和避免列命名冲突是一项更简单的任务。
如果您关心性能但仍需要某种查询工具,请使用 Laravel 附带的查询生成器。
要回答您的问题,联接将是您的最佳选择。
$data=user::with('country')->where('id',745)->where('name','xyz')->get();
希望对你有所帮助
我已经记下这个查询
Controller
$data = User::where('name',$name)->with('country');
在用户模型中
function country () {
return $this->belongsTo('App\Country');
}
可见
echo $data->country->name;
它工作正常,但它 运行 2 个查询:(
Select * from user where name = "xyz"
Select * from country where id = "745"
我想停止这个,我只想通过一个查询获取数据。加入是解决方案,还有其他解决方案吗?
不幸的是,这就是 Eloquent 的工作方式。它使用两个查询,因为初始化模型和避免列命名冲突是一项更简单的任务。
如果您关心性能但仍需要某种查询工具,请使用 Laravel 附带的查询生成器。
要回答您的问题,联接将是您的最佳选择。
$data=user::with('country')->where('id',745)->where('name','xyz')->get();
希望对你有所帮助