2015-03-21 9 views
5

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ę (. tagsarticles, ograniczenie articles_user_id_foreign KLUCZOWE obcych (user_id) REFERENCJE users (id)) (SQL: INSERT INTO articles (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?

Odpowiedz

Powiązane problemy