sql >> Databasteknik >  >> RDS >> Mysql

Överträdelse av integritetsbegränsning:1452 laravel

Din sista sql-fråga är insert into occasions (updated_at, created_at) values (2014-06-30 18:42:11, 2014-06-30 18:42:11) . Du bör bara se det updated_at och created_at håller på att infogas.

Detta händer eftersom Laravel skyddar din kod mot massuppdrag som standard:

Du måste göra dina kolumner fyllbara genom att lägga till en array med $fillable kolumner i din 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.
    );
}

Eller gör tvärtom, skydda alla kolumner som du inte vill att de ska vara masstilldelningsbara:

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

Observera att du tilldelar Input::get() direkt in i modellen. Här är en varning från massuppdrag avsnitt:




  1. SQL Server - brist på NATURAL JOIN / x JOIN y USING(fält)

  2. PHP - Importera CSV-fil till mysql-databas med LOAD DATA INFILE

  3. Använda förberedda uttalanden med mysql i python

  4. PG::DuplicateTable:FEL:relationsinlägg finns redan