2016-08-09 7 views

Antwort

12

Model::create ist ein einfacher Wrapper um $model = new MyModel(); $model->save() die Umsetzung Siehe

/** 
* Save a new model and return the instance. 
* 
* @param array $attributes 
* @return static 
*/ 
public static function create(array $attributes = []) 
{ 
    $model = new static($attributes); 

    $model->save(); 

    return $model; 
} 

save()

  • save() Methode sowohl für das Speichern von neuem Modell verwendet wird, und die Aktualisierung existierende. Hier erstellen Sie ein neues Modell oder finden ein bestehendes, , indem Sie seine Eigenschaften einzeln einstellen und schließlich in der Datenbank speichern.

  • save() akzeptiert eine vollständige Eloquent Modellinstanz

    $comment = new App\Comment(['message' => 'A new comment.']); 
    
    $post = App\Post::find(1);` 
    
    $post->comments()->save($comment); 
    


()

  • erstellen, während in der Methode erstellen Sie Arrays sind vorbei, das Setzen von Eigenschaften in Modell und besteht in der Datenbank in einem Schuss.
  • create() akzeptiert ein Klar PHP Array

    $post = App\Post::find(1); 
    
    $comment = $post->comments()->create([ 
        'message' => 'A new comment.', 
    ]); 
    

    EDIT
    @PawelMysior Wie erwähnt, bevor die Methode erstellen verwenden, müssen Sie nach Spalten, deren Werte zu markieren sind sicher einzustellen Durch die Massenzuweisung (wie Name, Geburtsdatum usw.) müssen wir unsere Eloquent-Modelle aktualisieren, indem wir eine neue Eigenschaft namens $ fillable bereitstellen. Das ist einfach ein Array mit den Namen der Attribute enthält, die sicher über Massenzuordnung zu setzen: ab: -

    Klasse Land erstreckt Modell {

    protected $fillable = [ 
        'name', 
        'area', 
        'language', 
        ]; 
    

    }

+0

Dank für Ihre antworten Sie, aber können Sie mir bitte mehr Ausarbeitung geben. Ich war durch das Laravel-Dokument gegangen, aber von dort habe ich nicht viel Ahnung. –

+0

Vielen Dank für Ihre Detaillierung. –

+4

Eine wichtige Sache zu beachten: Wenn Sie planen, create() 'zu verwenden, müssen alle Attribute, die Sie übergeben, im Attribut $ fillable im Modell aufgeführt werden. Siehe: https://laravel.com/docs/master/eloquent#mass-assignment – PawelMysior

Verwandte Themen