在您将此问题标记为重复之前,请查看详细信息:)我有一个与自定义列链接的多对多关系有关的问题
我有下表
员工
-Id
-brink_id <----- This is third party id I am saving of employee
-name
工作
-id
-brink_id <----- This is third party id I am saving of job
-description
employee_job
-id
-brink_id <----- This is third party id I am saving of relationship for third party
-brink_employee_id
-brink_job_id
在员工模型中,我创建了关系
public function jobs()
{
return $this->belongsToMany('App\Models\Job','employee_job','brink_employee_id','brink_job_id');
}
在乔布斯模型中
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function employees()
{
return $this->belongsToMany('App\Models\Employee','employee_job','brink_job_id','brink_employee_id');
}
实际上,我希望与brink_id in employees table
表中显示的brink_id in jobs table
和brink_employee_id, brink_job_id in employee_job
有很多关系,而不要具有ID(各表的主列)。
但是当我尝试使用以下命令插入数据透视表时,它总是插入员工ID而不是brink_id
$employee = Employee::with('jobs')->where('brink_id',$employeeJob['brink_employee_id'])->first();
$employee->jobs()->attach($employeeJob['brink_job_id'], ['is_active' => 1]);
例如,如果employee表中的brink_id为123456且ID为1,则employee_table中的上述代码将在employee_brink_id中存储1,而不是123456。
请让我知道我在做什么错。
答案 0 :(得分:0)
如果您未指定其他父键和相关键,则它将分别默认为当前模型的主键和相关模型的主键。
将父键名称指定为第5个参数,并将相关键名称指定为第6个参数:
moment.js
但是,在您的人际关系中,我会亲自使用您系统中的ID,而不是第三方系统中的ID。