2016-06-23 3 views
0

wenn ich ein Modell haben Student und es hat drei Eigenschaften:Wie aktualisiert man ein Massenzuweisungsmodell?

  1. Name
  2. Alter
  3. classroom_id

name und age in fillable Array sind.

Also, wenn ich einen neuen Schüler erstellen möchten, und sein/ihr classroom_id zuweisen, ich habe dies zu tun:

$student = App\Student::create(
[ 
'name'=>$request->input('name'), 
'age'=>$request->input('age') 
] 
); 

$student->classroom_id = 1;//for example 

$student->save(); 

ist dies der richtige? Und wenn das stimmt, füge ich eigentlich zweimal Action ein, oder?

Antwort

1

Sie können Ihr $fillable Array in Ihrem Modell einfach um classroom_id erweitern und es wird massenweise zuweisbar, was bedeutet, dass Sie nicht zwei Inserts durchführen müssen, um alle Daten dorthin zu bekommen.

Als solches Ihr $fillable Array wird wie folgt aussehen:

protected $fillable = ['name', 'age', 'classroom_id'];

Und Ihre Methode erstellen ähnlich wie diese:

$student = App\Student::create(
[ 
'name' => $request->input('name'), 
'age' => $request->input('age'), 
'classroom_id' => 1 
] 
); 

Dies ist der richtige Weg, anstatt den Betrieb Ihres Fügen Sie zweimal ein, was unnötig ist.

+0

Ja, aber wenn ich 'classroom_id' nicht füllen lassen möchte, muss ich zweimal einfügen, oder? – DengDeng

+0

@DengDeng na ja, weil es nicht massenweise zuweisbar ist, dann kann man es nicht zusammen mit anderen Variablen einfügen und müsste nur einen einzigen Einsatz dafür machen. Warum willst du es nicht in das Array "$ fillable" schreiben? – James

+0

Nun, ich möchte es nur testen. Für mich werde ich es natürlich in "befüllbar" bringen. Vielen Dank. – DengDeng