php - 有没有办法为 HasOneThrough 生成数据透视记录
问题描述
我的关系按我的意愿工作,但我不确定将数据插入数据透视表的正确方法。
这行得通,但看起来很复杂:
$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
解决方案
推荐阅读
- python - 使用 Pytesseract OCR 识别表格图像中的特定数字
- android - 匕首多重绑定,地图
> 如果没有 @Provides-annotated 方法,则无法提供 - android - 使用 FirestoreRecyclerAdapter 但无法从 Firebase 查询任何数据
- mysql - 如何从 MySQL 表中获取包含两个字段的行进行排序?
- python - 在 WHILE 循环中的 FOR 循环之前重置和创建变量
- python - 如何在 buildozer.spec python kivy 中包含 mp3 文件
- reactjs - 如何在反应中处理多个时间设置状态(预算应用程序)
- c# - 如何在从数组中的 ViewBag 传递的 ASP.NET MVC 视图中显示特定范围的项目
- python - admin.add_view(ModelView(User, db.session)) 不显示用户
- html - 如何链接html模板以开始在django中工作?