Laravel中的关系检索差异

时间:2017-08-10 08:03:02

标签: laravel relationships

之间的区别是什么
$this->translations;

$this->translations()->get();

其中translation是当前模型的关系。我认为两者都做同样的事情。

2 个答案:

答案 0 :(得分:3)

它们基本上是一回事。

但是:

  • $this->translations()->get();每次调用时都会查询数据库。
  • $this->translations;将在第一次执行数据库查询,并将结果存储在内存中供以后使用。

答案 1 :(得分:1)

$this->translations;会将所有翻译返回给相关模型, 而$this->translations()将为您提供查询构建器实例,您可以在其中将约束添加到相关模型,例如

$this->translations()->where(['locale' , 'en'])->orderBy('sort')->get();