Ho un semplice modello di articolo e un modello di utente.Laravel 5: Violazione del vincolo di integrità: 1452 Impossibile aggiungere o aggiornare una riga secondaria: un vincolo di chiave esterna non riesce
L'articolo "appartiene" a un utente e un utente "ha molti" articoli.
Pertanto la migrazione del mio articolo ha una chiave esterna denominata "user_id".
Schema::create('articles', function(Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->timestamps();
});
Eppure ogni volta che creo un articolo dove passo "user_id" in un campo nascosto ottengo un messaggio di errore.
{!! Form::open(array('route' => 'articles.store')) !!}
{!! Form::hidden('userId', $user->id) !!}
<div class="form-group">
{!! Form::label('title', 'Title') !!}
{!! Form::text('title', null, array('class' => 'form-control')) !!}
</div>
<div class="form-group">
{!! Form::label('text', 'Write your Article') !!}
{!! Form::textarea('text', null, array('class' => 'form-control')) !!}
</div>
{!! Form::submit('Create Article', array('class' => 'btn btn-default btn-success')) !!}
{!! Form::close() !!}
Questo è il messaggio di errore. E capisco che non provo a inserire il valore per 'user_id' nella tabella degli articoli.
SQLSTATE [23000]: Integrità violazione del vincolo: 1452 Impossibile aggiungere o aggiornamento la riga: un vincolo di chiave esterna non riesce (.
tags
articles
, CONSTRAINTarticles_user_id_foreign
FOREIGN KEY (user_id
) RIFERIMENTIusers
(id
)) (SQL: INSERT INTOarticles
(title
,body
,updated_at
,created_at
) valori (titolo, il testo, 2015/03/21 23:19:33, 2015-03-21 23:19:33))
Ecco il mio deposito di metodo sul mio AriclesController:
Article::create([
'title' => Input::get('title'),
'body' => Input::get('text'),
'user_id' => Input::get('userId')
]);
return Redirect::to('articles');
Ci sono decine di altri aperti StackOverflow domande con un titolo simile, e sto cercando ancora senza successo per la risposta che si adatta al mio caso specifico, quindi mi grazie in anticipo gentile straniero.
Come si salva un articolo nel mio database?
Grazie Adam. Non posso credere di aver dimenticato di inserire "user_id" nell'array compilabile. – LoveAndHappiness
grazie, che mi ha salvato anche io :) – pietr
grazie mille! – heavymetal91