[英]Concept of table relations in Laravel
我有两张桌子:
Cards
Notes
每张卡都有多个Notes 。 所以他们之间有这样的关系:
class Card extends Model {
public function notes ()
{
return $this->hasMany(Note::class);
}
}
好吧,一切都很好。
现在我需要理解这两行的概念:
$card()->$notes()->first();
和
$card()->$notes->first();
他们之间有什么区别? 正如你在第一个中看到的那样, $note()
是一个函数,而在第二个$note
中,不是函数。 它们将如何在PHP中翻译?
第一个指向card
表,第二个指向notes
表,对吧? 要不然是啥? 无论如何,我坚持理解tham的概念。
我在代码中的$notes
之前不知道$
,但是如果你想说这样的话。
1- $card->notes()->first();
2- $card->notes->first();
在第1行的代码中,首先你有一个$card
模型,然后你想访问与该$card
相关的所有notes()
,并且由于在notes
之后添加()
你只需在notes上调用query builder
,显示你可以执行之后的任何其他数据库查询函数,例如where, orderBy, groupBy, ...
以及数据库上的任何其他复杂查询。
但是在第二个中你实际上可以访问与该$card
相关的一collection
音符,我们可以说你从数据库中获取所有相关的音符并将其设置为laravel集合,并且你不再能够在notes
上执行数据库查询。
注意:因为laravel集合有一些方法,比如
where(), groupBy(), whereIn(), sort(), ...
你可以在第二个上使用它们,但是在这种情况下你在集合上执行那些方法而不是数据库 ,you already get all results from database
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.