首页 > 解决方案 > 创建只包含关联而不显式设置 id 的记录

问题描述

我的控制器中有以下代码,我正在尝试创建一个 userProgram 记录:

$program = Program::find($request['program']);

$user->userProgram()->create([

]);

如果我的关系设置正确,我觉得我不必使用 create() 明确设置这些值

但是,我无法使用 laravel 自动创建此 userProgram 记录,有人可以帮忙吗?

userProgram有一个program_id和一个user_id

用户程序.php

  class UserProgram extends Model
    {
        public function User()
        {
            return $this->belongsTo('App\Model\User');
        }

        public function Program()
        {
            return $this->hasOne('App\Model\Program');
        }
    }

程序.php

class Program extends Model
{
    protected $fillable = ['developer_id', 'name'];


    public function userProgram()
    {
        return $this->belongsTo('App\Model\UserProgram');
    }
}

标签: laraveleloquent

解决方案


您可以像下面这样用户创建方法。

$user->userProgram()->create(['program_id' => $programId]);

推荐阅读