php - Why is laravel's updateOrCreate creating new records instead of updating? -
code
entry::updateorcreate([ 'intern_id'=>$intern['id'], 'created_at'=>carbon::parse($input['date']) ],[ 'company_id'=>$intern['supervisor']['company']['id'], 'content'=>$input['text'] ]); i'm using code try updating/creating new record. it's suppose matche intern_id , create_at column first. if found, creates new one. however, seems creating new 1 , when creates new one, company_id , intern_id column set 0 instead of original value.
note: intern_id or created_at not pk columns. note2: created_at date type, not datetime
use code
entry::updateorcreate(['intern_id'=>$intern['id']], [ 'created_at'=>carbon::parse($input['date']), 'company_id'=> $intern['supervisor']['company']['id'], 'content'=>$input['text'] ]); i believe work.
updateorcreate() function of model abstract class takes 2 parameters, parameter passing breaking.
/** * create or update record matching attributes, , fill 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; }
Comments
Post a Comment