我需要在表中输入1-many个记录.在查询中执行此操作的最佳方法是什么?我应该只做一个循环并在每次迭代中插入一条记录吗?或者,还有更好的方法?
我有两个模型,由一个数据透视表连接,User和Task.
我有一个user_id和一个task_id.
检查用户和任务组合是否存在记录的最佳方法是什么?
这是事情,我有3个表,users/users_types/types.
我通过users_types在用户和类型之间有一个belongsToMany,其中包含一些信息.其中一个是表单中的行号.我试图根据userID和行号更新表,但不是在typeID上更新,后者由我的输入填充.
我怎样才能实现呢?我已经试了
updateExistantPivot($line_number->line_number,array(
'type_id' => $type_id,
'etc' => $etc,
'duration' => $duration
)
);
Run Code Online (Sandbox Code Playgroud)
但显然它不会工作,因为它需要typeID而不是line_number ...我总是想更新相同的line_number和userID.(我在每个行的for循环中).
谢谢你的帮助!
哦,我确实尝试了同步...但它给了我一个外键错误,因为它发送的数据不应该在那里.
我有两个型号:
用户和 资源
关系表是resource_user.
resource_user中的字段是:
id | resource_id | user_id | another_id
我在用户中有这种关系:
public function resources() {
return $this->belongsToMany('Resource')->withPivot(array(
'value',
'another_id',
));
}
Run Code Online (Sandbox Code Playgroud)
现在我要更新我的数据透视表:
(在模型用户中有这个代码示例)
$this->resources()->whereAnotherId(1)->updateExistingPivot($resource_id, array(
'value' => $value,
'updated_at' => new DateTime,
));
Run Code Online (Sandbox Code Playgroud)
问题是another_id.
如果我的关系表(resource_user)中有两个条目但是具有不同的 another_id.在此示例中,laravel将更新BOTH条目.但这不是我想要的.在此示例中,只应更新一个条目(具有another_id = 1的条目).这是一个错误,或者我如何更新我的数据透视表(sync()函数不能用于我的表设置)