Laravel Eloquent关系与数据库查询



我正在做一个Laravel项目。我通常通过Eloquent ORM获取数据库关系,比如belongsToMany或hasOne等等。但是,当您从这些关系中获取数据时,它会运行额外的查询吗?之间是否存在性能差异

$this->hasOne(Model::class)

Model::find($this->some_id)

非常感谢。

我将给您举一些例子。我希望这能帮助你。

我有两种型号:

在A模型中:

public $fillable = [
'id',
...
];
public function b()
{
return $this->hasOne(B::class, 'a_id', 'id');
}

In B模型:

public $fillable = [
'id',
'a_id',
...
];
public function a()
{
return $this->belongsTo(A::class, 'a_id', 'id');
}

然后你可以得到这样的数据:

$a = A::find($id);
$b = B::find($a->b->id);
echo $a->attributeOfA;
echo $b->attributeOfB;
echo $a->b->attributeOfB;
echo $b->a->attributeOfA;

使用Laravel Debugbardd((测试

最新更新