在 Laravel 关系上修改外键

Posted

技术标签:

【中文标题】在 Laravel 关系上修改外键【英文标题】:Amending foreign key on a Laravel relationship 【发布时间】:2019-04-11 04:52:12 【问题描述】:

在 Laravel (v5.7.12) 中,我有两个模型 - UserProject

一个用户有一个id,可以有很多项目。一个项目有一个owner_id

我似乎无法正确配置关系。在我的用户模型中,我有:

/**
 * Get the projects associated with the user.
 */
public function projects()

    $this->hasMany('\App\Project', 'owner_id', 'id');

在我的项目模型中,我有:

/**
 * Get the owner associated with the user.
 */
public function owner()

    $this->belongsTo('\App\User', 'id', 'owner_id');

但是调用$user->projects()$project->owner() 会返回null

我应该如何配置我的非标准关系键?

【问题讨论】:

【参考方案1】:

你忘了返回方法:

public function projects()

    return $this->hasMany('\App\Project', 'owner_id');

对第二个也这样做:

public function owner()

    return $this->belongsTo('\App\User', 'owner_id');

【讨论】:

啊啊啊啊啊啊。我必须成功地完成了几十次!感谢您的帮助!

以上是关于在 Laravel 关系上修改外键的主要内容,如果未能解决你的问题,请参考以下文章

没有外键的laravel关系

在 Laravel 中迁移外键与雄辩的关系

Laravel:当我的外键在数组中时,如何在模型中添加关系?

如何在 Laravel 迁移中创建自引用关系(外键)?

Laravel关系,一个数据库有两个外键

Laravel 关系和外键约束