When/why 使用 hasMany 和 belongsTo

When/why use the hasMany and belongsTo

在Laravel中可以使用模型中的hasMany()belongsTo()方法来指定表之间的关系。这用于一对多关系。

但是在迁移文件中,此关系也由

为数据库指定
$table->foreign('userId')->references('id')->on('users')

为什么在Laravel中指定为double? 为什么 Laravel 不从数据库中获取关系,我们是否必须将其指定为 double?

Laravel 提供 hasMany()belongsTo() 等,以便更快地访问 model 级别的表之间的 parent/child 记录。例如,您可以使用 ->{attr} 访问子记录,这使得子记录就像父记录的属性一样。

它还有其他好处,例如通过向 ->with() 函数提供关系参数来预先加载子记录。

相比之下,迁移文件中关系的使用是在 数据库 级别强制表之间的关系。