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

标签 eloquent laravel-5.1

在定义 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_keyother_key 是对应的,即外键指向的列。
在大多数情况下,这也是另一个表的主键列。
(在您的情况下不指定任何 id)

关于eloquent - 覆盖 Eloquent 关系中的默认外键和本地键 Laravel 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32179760/

相关文章:

mysql - 从多个表中添加总计

laravel - 在 Eloquent 中使用预先加载对计算列进行查询和过滤

php - 在 Laravel 5.1 中添加带有迁移的列后,无法修改我的数据库中的 'updated_at'

php - 使用范围和关系计算两行 (Laravel)

php - 在 Laravel 中使用 Eloquent ORM 使用 'not regexp' 执行数据库搜索

Laravel - 如何获取要执行的迁移列表?

MySQL/Laravel/ Eloquent : Select rows that exist in 2 tables

php - 在 Laravel 5.1 中执行 Action 之前

php - 使用 maatweb 将 Excel 工作表导入 Laravel 5.1

php - Laravel 5.1 检索多个输入值并插入到数据库