Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verletzung der Integritätsbeschränkung:1452 Laravel

Ihre letzte SQL-Abfrage ist insert into occasions (updated_at, created_at) values (2014-06-30 18:42:11, 2014-06-30 18:42:11) . Sie sollten nur updated_at sehen und created_at wird eingefügt.

Dies geschieht, weil Laravel Ihren Code vor Mass Assignment schützt standardmäßig:

Sie müssen Ihre Spalten ausfüllbar machen, indem Sie ein Array von $fillable hinzufügen Spalten in Ihrem Modell:

class Occasion extends Eloquent
{
    protected $fillable = array(
        'created_by_user_id',
        'updated_by_user_id',
        // The rest of the column names that you want it to be mass-assignable.
    );
}

Oder tun Sie das Gegenteil, schützen Sie alle Spalten, die nicht massenzuweisbar sein sollen:

class Occasion extends Eloquent
{
    protected $guarded = array(
        // Any columns you don't want to be mass-assignable.
        // Or just empty array if all is mass-assignable.
    );
}

Beachten Sie, dass Sie Input::get() zuweisen direkt in das Modell. Hier ist eine Warnung von Mass Assignment Abschnitt: