id_branch是PK,id_item是PK& FK
$id = B;
$id_selected = A;
$from_category= Category::where('id_branch', $id_selected)->get();
foreach ($from_items as $from_item) {
$test = Category::updateOrCreate(['id_branch' => $id,'id_item'=>$from_item->id_item], ['remarks' => $from_item->remarks]);
}
例如,用户将选择需要将哪个分支类别记录复制到当前分支类别。之后,将更新或从所选分支类别中的记录插入当前分支。将分支类别A记录复制到分支类别B.如果存在则更新else插入。我能够插入记录,但更新时该值将为null。我的代码出了什么问题?
答案 0 :(得分:1)
updateOrCreate
方法取2个参数,第一个是条件,第二个是要更新或创建的数据。
在您的情况下,如果分支中不存在ID
,则会创建包含给定数据的新行但您未通过id_branch
和id_item
第二个参数,我想解决这个问题你应该编写如下代码
$test = Category::updateOrCreate(
[
'id_branch' => $id,
'id_item'=>$from_item->id_item
],
[
'id_branch' => $id,
'id_item'=>$from_item->id_item,
'remarks' => $from_item->remarks
]
);