2017-05-18 2 views
1

Ich habe folgendes Bus-Modell:MassAssignmentException in Model.php Linie 232

class Bus extends Model 
{ 
    protected $guarded =['']; 
    protected $fillable = ['plate_num','seat_num']; 

    public function seats(){ 

     return $this->hasMany(Seat::class); 
    } 

    public function addSeat($number){ 

     $this->seats()->create([ 
      'seat_num'=> $number 

      ]); 
    } 
} 

Und in meinem Buscontroller Ich habe folgende Speicherfunktion, die zwei Werte aus einer Form ('plate_num' und 'seats_num') bekommt

Obwohl ich habe die $ ausfüllbare Array mit den benötigten Felder (Sitz @ seat_num und Bus @ plate_num) jedoch Immer, wenn ich senden Sie das Formular ich die folgende Fehlermeldung erhalten:

MassAssignmentException in Model.php line 232 Seat_num

Die Logik des Codes ist grundsätzlich immer dann, wenn i Schlüssel in der Busplatte Nummer und Anzahl der Sitze beispiels „ABC213“ und „5“, einen Datensatz sollte in die erzeugt werden Bus-Tabelle, die die Plattennummer enthält, und 5 Datensätze sollten in der Tabelle Sitze erstellt werden, wobei jeder Datensatz die ID des Busses und die Sitznummer erhält.

+1

Ist das 'seat_num' Attribut auf dem Bus oder Sitzmodell zugeordnet werden? Die Art und Weise, wie du den Sitz in der 'addSeat()' Methode erstellst, lässt mich denken, dass es auf deinem 'Seat' Modell ist, was bedeutet, dass du es als" fillable "attr hinzufügen musst – jackel414

Antwort

3

bearbeiten Ihr Modell

protected $fillable = ['plate_num']; 

in Ihrem Sitz Modell hinzufügen

protected $fillable = ['seat_num']; 

Sie jetzt in Ihrem Controller verwenden können

use App\seat; 
use App\bus; 
public function add(){ 
$seat = new seat; 
$bus = new bus; 
3

Sie müssen $fillable Array in Seat Modell und nicht in Bus Modell ausfüllen.

Bei Verwendung:

$this->seats()->create(...); 

Sie erstellen Seat Modelle so in diesem Fall befüllbar aus Seat Modell verwendet wird.

1

Entfernen Sie die folgende Zeile in Ihrem Modell.

protected $guarded =['']; 

Sie sollten nur bewacht oder befüllbar und nicht beide festlegen. Überprüfen Sie außerdem, ob Sie in den verwandten Modellen die richtigen ausfüllbaren Eigenschaften festgelegt haben. Es hilft Ihnen, mehr Code von dem, was Sie versuchen, zu veröffentlichen.

0

zu beheben Laravel MassAssignmentException in model.php Bedarf hinzufügen nachstehenden Schritte :

Es kann aufgrund zweier Möglichkeiten auftreten:

Für eine Massenzuweisung müssen alle Felder eines Modells angegeben werden, die während eines Aktualisierungs- oder Erstellungsvorgangs einer Massenzuordnung zugewiesen werden.

protected $fillable = ['age', 'phone', 'mail', 'location', 'created_at', 'updated_at']; 

Tabellenname sollte in $ table = „user_info“ in Modelldatei

Verwandte Themen