我已写下此查询
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"
我想停止此操作,我想仅使用一个查询来获取数据。加入是解决方案,还有其他解决方案吗?
答案 0 :(得分:1)
不幸的是,这是Eloquent的工作方式。它使用两个查询,因为初始化模型和避免列命名冲突是一个更简单的任务。
如果您担心性能但仍需要某种查询工具,请使用Laravel附带的查询生成器。
要回答你的问题,加入将是你最好的选择。
答案 1 :(得分:0)
$data=user::with('country')->where('id',745)->where('name','xyz')->get();
我希望能帮到你