Mar*_*ark 1 php laravel laravel-5
码
Entry::updateOrCreate([
'intern_id'=>$intern['id'],
'created_at'=>Carbon::parse($input['date'])
],[
'company_id'=>$intern['supervisor']['company']['id'],
'content'=>$input['text']
]);
Run Code Online (Sandbox Code Playgroud)
我正在使用此代码尝试更新/创建新记录。假设首先匹配intern_id并匹配create_at列。如果找到,它将创建一个新的。但是,似乎总是在创建一个新值,当它创建一个新值时,company_idand intern_id列设置为0,而不是原始值。
注意:intern_id还是created_at不是PK列。注意2:created_at是日期类型,而不是日期时间
使用此代码
Entry::updateOrCreate(['intern_id'=>$intern['id']],
[
'created_at'=>Carbon::parse($input['date']),
'company_id'=> $intern['supervisor']['company']['id'],
'content'=>$input['text']
]);
Run Code Online (Sandbox Code Playgroud)
我相信这会起作用。
updateOrCreate() Model Abstract Class的函数需要2个参数,但您的参数传递已中断。
/**
* Create or update a record matching the attributes, and fill it with values.
*
* @param array $attributes
* @param array $values
* @return static
*/
public static function updateOrCreate(array $attributes, array $values = array())
{
$instance = static::firstOrNew($attributes);
$instance->fill($values)->save();
return $instance;
}
Run Code Online (Sandbox Code Playgroud)