sql >> Base de Datos >  >> RDS >> Mysql

Violación de restricción de integridad:1452 laravel

Su consulta SQL final es insert into occasions (updated_at, created_at) values (2014-06-30 18:42:11, 2014-06-30 18:42:11) . Debería ver que solo updated_at y created_at se está insertando.

Esto sucede porque Laravel protege su código contra Mass Assignment por defecto:

Deberá hacer que sus columnas se puedan completar agregando una matriz de $fillable columnas en su modelo:

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.
    );
}

O haga lo contrario, guarde las columnas que no quiera que sean asignables en masa:

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.
    );
}

Tenga en cuenta que está asignando Input::get() en el modelo directamente. Aquí hay una advertencia de Mass Assignment sección: