我正在使用 laravel updateOrCreate 函数
$variable = Variable::updateOrCreate(
['name' => $name,
'landing_id' => $landing_id,
'version_id' => $version_id,
'page_id' => $page_id],
[
'user_id' => Auth::user()->id
'user_modified_id' => Auth::user()->id ]
);
如何正确使用此函数,在创建记录时向user_id添加值,并在更新记录时更新user_modified_id更新。
Well i found work around for my issue but i don't know if this is best way to do. What i have to do is this:
if( $variable->user_id == 0){
$variable->user_id = Auth::user()->id;
}
$variable->value = $setting;
$variable->save();
使用以下代码来执行数据。第一个指示匹配的条件,第二个用于指定要更新的字段。
$variable = Variable::updateOrCreate([
//Add unique field combo to match here
//For example, perhaps you only want one entry per user:
'user_id' => Auth::user()->id,
],[
'name' => $name,
'landing_id' => $landing_id,
'version_id' => $version_id,
'page_id' => $page_id
]);
这样肯定更好。
$variable = Variable::updateOrCreate(
['name' => $name,
'landing_id' => $landing_id,
'version_id' => $version_id,
'page_id' => $page_id],
'user_id' => Auth::user()->id
[
'user_modified_id' => Auth::user()->id ]
);
如果没有匹配项,第一个数组将创建一个新模型,第二个数组将更新指定的值(如果存在(。
您的问题是,如果没有匹配的记录,user_modified_id
将与user_id
一起创建。