laravel 5.2工作属于两个不同的查询

时间:2016-06-15 11:32:36

标签: laravel belongs-to

我已写下此查询

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"

我想停止此操作,我想仅使用一个查询来获取数据。加入是解决方案,还有其他解决方案吗?

2 个答案:

答案 0 :(得分:1)

不幸的是,这是Eloquent的工作方式。它使用两个查询,因为初始化模型和避免列命名冲突是一个更简单的任务。

如果您担心性能但仍需要某种查询工具,请使用Laravel附带的查询生成器。

要回答你的问题,加入将是你最好的选择。

答案 1 :(得分:0)

$data=user::with('country')->where('id',745)->where('name','xyz')->get();

我希望能帮到你