Mam prosty model artykułu i model użytkownika.Laravel 5: Naruszenie ograniczenia integralności: 1452 Nie można dodać lub zaktualizować wiersza podrzędnego: nie działa ograniczenie klucza obcego
Artykuł "należy do" użytkownika i użytkownika "ma wiele" Artykuł.
Dlatego moja migracja artykułu ma klucz obcy o nazwie "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();
});
Jednak za każdym razem, gdy utworzę artykuł, w którym przekazuję "identyfikator_użytkownika" w ukrytym polu, pojawia się komunikat o błędzie.
{!! 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() !!}
To jest komunikat o błędzie. Rozumiem, że nie próbuję wstawić wartości "user_id" do tabeli artykułów.
SQLSTATE [23000]: Integrity naruszenia ograniczenia: 1452 Nie można dodać lub aktualizacja wiersz dziecko: a ograniczenie klucza obcego nie powiedzie się (.
tags
articles
, ograniczeniearticles_user_id_foreign
KLUCZOWE obcych (user_id
) REFERENCJEusers
(id
)) (SQL: INSERT INTOarticles
(title
,body
,updated_at
,created_at
) wartości (tytuł, jakiś tekst, 21.03.2015 23:19:33, 21.03.2015 23:19:33))
Oto mój sklep metody na moim AriclesController:
Article::create([
'title' => Input::get('title'),
'body' => Input::get('text'),
'user_id' => Input::get('userId')
]);
return Redirect::to('articles');
Istnieją dziesiątki innych pytań otwartych StackOverflow o podobnym tytule, a ja szukam jeszcze bezskutecznie na odpowiedź, która pasuje do mojego konkretnego przypadku, dlatego z góry dziękuję nieznajomemu.
Jak zapisać artykuł w mojej bazie danych?
Dziękuję Adam. Nie mogę uwierzyć, że zapomniałem wstawić "user_id" w tablicy wypełniania. – LoveAndHappiness
dzięki, że mnie też uratowałeś :) – pietr
dziękuję bardzo! – heavymetal91