微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel8 有许多中的一个

如何解决Laravel8 有许多中的一个

我对 Laravel 8 比较陌生,我无法确定当我需要建立关系时应该做什么 在 Laravel 8 的文档中没有很好的记录。

我的用户只能有一个工作。 我有一个表格工作,我列出了所有可用的工作 { id,name,timestamps }

是否应该在 User 表中创建一个 job_id 来存储 Job 的 id 要么 我应该对 job_user 表使用多对多吗

是否有更好的方法来创建多选关系。

解决方法

你们的关系很简单:

工作有很多用户

用户有一个工作

因此,您应该在 users 表中添加 job_id 并将其链接到 jobs 表。

  public function up()
    {
        Schema::table('users',function (Blueprint $table) {
               $table->unsignedBigInteger('job_id');
               $table->foreign("job_id")->references('id')->on('jobs');
        });
    }
 

并确保在创建用户和作业表之后进行此迁移。

根据 Laravel doc,关系应该是这样设置的:

在用户模型中:

class User extends Authenticatable
{
   public function job()
    {
        return $this->belongsTo('App\Models\Job',"user_id");
    }
}

对于工作模型:

class Job extends Model
{
   public function users()
    {
        return $this->hasMany('App\Models\User',"user_id");
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。