覆盖 Eloquent 关系中的默认外键和本地键 Laravel 5

Overriding default foreign key and local key in Eloquent relationships Laravel 5

我在定义 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参数都是phonetable上的外键列。
(在您的情况下没有指定任何 user_id

local_keyother_key是对应的,外键指向的列。
在大多数情况下,这也是另一个 table.
的主键列 (在您的情况下没有指定任何 id