2017-12-05 25 views
0

updateOrCreate를 사용하는 데 문제가 있습니다.Eloquent updateOrCreate not update

아래 코드는 새로운 행을 만드는 데 성공했습니다. 그러나 기존 행을 업데이트 할 때는 전혀 작동하지 않습니다!

comm_helpful::updateOrCreate(
      ['ID' => 1], 
      ['time' => 3000] 
     ); 

이 정확하게 예상 작품과 같이

comm_helpful::where('ID', 1)->update(['time' => 3000]); 

나는 (I 디버깅의 일환으로했다) 맨손으로 최소 다시 위의 예제를 제거했는데 그것은 여전히 ​​작동하지 않습니다!

+0

에 그것을 무시하고 확인해야한다는 의미? – anwerj

+0

당신은'MassAssignmentException'을 얻고 있습니까? 모델에서 대량 할당을 위해'protected $ fillable' 변수에 필드를 정의 했습니까? –

+0

컨트롤러와 업데이트 양식을 보여주세요 – olasunkanmi

답변

0

좋아, 거의 완전히 내 머리카락을 꺼낸 후.

protected $primaryKey = 'id'; 

업데이트 방법에 사용()은 getKeyName에 의해 반환되는 : 나는 웅변을 설정하는 문제를 발견했다.

protected function setKeysForSaveQuery(Builder $query) 
{ 

    $query->where($this->getKeyName(), '=', $this->getKeyForSaveQuery()); 

    return $query; 
} 

나는이 이야기에서 내 'id'가 대문자이고 소문자가 아니라는 것을 깨달았다. 내 생각

는 내 대답은 내가 차 키를 소문자 '아이디'를 사용하거나 오류를 얻고있는 모델

protected $primaryKey = 'ID';