覆盖 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
参数都是phone
table上的外键列。
(在您的情况下没有指定任何 user_id
)
local_key
和other_key
是对应的,外键指向的列。
在大多数情况下,这也是另一个 table.
的主键列
(在您的情况下没有指定任何 id
)
我在定义 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
table上的外键列。
(在您的情况下没有指定任何 user_id
)
local_key
和other_key
是对应的,外键指向的列。
在大多数情况下,这也是另一个 table.
的主键列
(在您的情况下没有指定任何 id
)