2017-12-05 3 views
0

Ich habe Probleme mit updateOrCreate.Eloquent updateOrCreate nicht aktualisieren

Der folgende Code ist ERFOLGREICH, eine neue Zeile zu erstellen; Wenn es jedoch darum geht, eine bestehende Zeile zu aktualisieren, funktioniert sie überhaupt nicht!

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

Das funktioniert genau wie erwartet:

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

ich die Beispiele oben bis auf das blanke Minimum abgestreift haben (was ich als Teil der Debug-tat) und es funktioniert immer noch nicht !!

+0

Sind Sie einen Fehler bekommen? – anwerj

+0

erhalten Sie eine 'MassAssignmentException'? und in Ihrem Modell haben Sie die Felder in 'protected $ fillable' Variable für die Massenzuweisung definiert? –

+0

zeigen Sie uns Ihren Controller und Ihr Update-Formular – olasunkanmi

Antwort

0

Ok, nachdem ich mir fast die Haare ausgezogen habe; Ich fand das Problem, wo Eloquent setzt:

protected $primaryKey = 'id'; 

, die auf der Update-Methode verwendet wird, und kehrte von GetKeyName().

protected function setKeysForSaveQuery(Builder $query) 
{ 

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

    return $query; 
} 

Ich erkannte dann mein ‚id‘ auf die Geschichte war Groß- und nicht Kleinschreibung!

Ich denke, das bedeutet, meine Antwort ist, dass ich, um sicherzustellen, muss ich Klein ‚id‘ bin mit für den Primärschlüssel oder überschreiben sie auf dem Modell

protected $primaryKey = 'ID'; 
Verwandte Themen