我的关系按我的意愿工作,但我不确定将数据插入数据透视表的正确方法。
这行得通,但看起来很复杂:
$toggl = App\Models\Toggl::find($toggl_id);
$teamwork = App\Models\Teamwork::find($teamwork_id);
$tt = new TeamworkToggl();
$tt->teamwork()->associate($teamwork);
$tt->toggl()->associate($toggl);
$tt->save();
对于我发现的其他关系类型,您可以执行以下操作:
$toggl->teamwork()->associate($teamwork);
或者
$toggl->teamwork()->save($teamwork);
这两个都不适用于 HasOneThrough 关系。
这是我的模型的样子:
class Toggl extends Model
{
public function teamwork(){
return $this->hasOneThrough(
Teamwork::class,
TeamworkToggl::class,
'toggl_id',
'id',
'id',
'teamwork_id',
);
}
}
团队合作的模式是:
class Project extends Model
{
public function toggl(){
return $this->hasOneThrough(
Toggl::class,
TeamworkToggl::class,
'teamwork_id',
'id',
'id',
'toggl_id',
);
}
}
中间表如下所示:
class TeamworkToggl extends Model
{
public function teamwork(){
return $this->belongsTo(Teamwork::class);
}
public function toggl(){
return $this->belongsTo(Toggl::class);
}
}
难道我做错了什么?
我查看了以下帖子,但那是关于访问数据的,我正在寻找创建数据:hasOneThrough with pivot table laravel eloquent