Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Violação de restrição de integridade:1452 laravel


Sua consulta sql final é insert into occasions (updated_at, created_at) values (2014-06-30 18:42:11, 2014-06-30 18:42:11) . Você deve ver que somente updated_at e created_at está sendo inserido.

Isso acontece porque o Laravel protege seu código contra Atribuição em massa por padrão:

Você precisará tornar suas colunas preenchíveis adicionando uma matriz de $fillable colunas em seu 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.
    );
}

Ou faça o oposto, proteja as colunas que você não deseja que sejam atribuíveis em massa:
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.
    );
}

Observe que você está atribuindo Input::get() diretamente no modelo. Aqui está um aviso de Atribuição em massa seção: