在定义 Eloquent 关系时,我对第二个和第三个参数感到困惑。
public function phone()
{
return $this->hasOne('App\Phone', 'foreign_key', 'local_key');
}
public function user()
{
return $this->belongsTo('App\User', 'foreign_key', 'other_key');
}
我理解这两种关系中的第二个参数,它是相同的外键。但是,我对第三个论点感到困惑,它指的是什么?我假设这是外键引用的关键,因此在两种关系中它也将相同。我不知道我是对还是错。请详细说明答案。
最佳答案
你的假设是正确的。
两个参数都引用完全相同的两列。
两个 foreign_key
参数都是 phone
表上的外键列。
(无需指定您的情况下的 user_id
任何内容)
local_key
和 other_key
是对应的,即外键指向的列。
在大多数情况下,这也是另一个表的主键列。
(在您的情况下不指定任何 id
)
关于eloquent - 覆盖 Eloquent 关系中的默认外键和本地键 Laravel 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32179760/