Ken*_*ink 1 php mysql laravel eloquent
如果还没有符合以下条件的行,我正在尝试创建一个新行:
['employee_id' => $id, 'competence_id' => $getCompetenceKey]
或者如果它已经存在,我会更新它并设置['value' => $getCompetenceValue]
所以我这样做了:
foreach($request->input('competence') as $getCompetenceKey => $getCompetenceValue) {
EmployeeCompetence::updateOrCreate(
['employee_id' => $id,'competence_id' => $getCompetenceKey],
['value' => $getCompetenceValue]
);
}
Run Code Online (Sandbox Code Playgroud)
但它似乎不能正常工作:
https://i.stack.imgur.com/8ndQt.png
我可以这样做:
foreach ($request->input('competence') as $getCompetenceKey => $getCompetenceValue) {
$e = EmployeeCompetence::where('employee_id', $id)->where('competence_id', $getCompetenceKey);
if ($e->count() > 0) {
$e->update(['value' => $getCompetenceValue]);
} else {
EmployeeCompetence::create(['employee_id' => $id,
'competence_id' => $getCompetenceKey,
'value' => $getCompetenceValue]);
}
}
Run Code Online (Sandbox Code Playgroud)
但我真的想知道为什么 updateOrCreate() 函数对我不起作用。
谢谢,
肯尼
小智 5
第一列用于更新,但也应该在创建函数中传递。
例子:
EmployeeCompetence::updateOrCreate(
[
'employee_id' => $id,
'competence_id' => $getCompetenceKey
],
[
'value' => $getCompetenceValue,
'employee_id' => $id,
'competence_id' => $getCompetenceKey
]
);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5146 次 |
最近记录: |