Mysql
 sql >> Base de données >  >> RDS >> Mysql

Violation de la contrainte d'intégrité :1452 laravel

Votre requête sql finale est insert into occasions (updated_at, created_at) values (2014-06-30 18:42:11, 2014-06-30 18:42:11) . Vous devriez voir que seulement updated_at et created_at est en cours d'insertion.

Cela se produit parce que Laravel protège votre code contre les l'affectation de masse par défaut :

Vous devrez rendre vos colonnes remplissables en ajoutant un tableau de $fillable colonnes dans votre modèle :

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

Ou faites le contraire, gardez toutes les colonnes que vous ne voulez pas qu'elles soient assignables en masse :

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

Notez que vous affectez Input::get() directement dans le modèle. Voici un avertissement de Affectation de masse rubrique :