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();

希望对你有所帮助