我应该在Laravel中使用belongsTo还是hasOne?

wol*_*ang 46 laravel

考虑两个模型AB

A- > relatedTo B是一种one to one关系

使用(A - > hasOne- B)和(A - > belongsTo- B)有什么区别?

我可以互换使用吗?

use*_*496 118

不,差异取决于外键的位置.

在您的示例中,如果A有一b_id列,那么A belongsTo B.

如果B有一a_id列,那么A hasOnehasMany B取决于B应该有多少.

  • 谢谢.你是唯一一个用密钥来解释它的人.其他人都试图用"英语"解释它,但有时你的模型太抽象了,甚至没有意义. (17认同)
  • 让我们说'A`有'b_id`列.在这种情况下,我可以使用`A.belongsTo(b)`或`B.hasOne(A)`.在这两种情况下,ORM都会将`b_id`添加到`A`表中.那么,这有什么区别?你能解释一下吗? (3认同)

Abi*_*Ali 34

主要区别如下:

belongsTobelongsToMany你告诉Laravel这个表包含将它连接到另一个表的外键

hasOnehasMany告诉Laravel这个表没有外键

  • 我认为你的答案更简单易懂。谢谢! (5认同)