繁体   English   中英

表关系的概念在Laravel

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM