2016-04-28 4 views
1

Пока вставляем данные в базу данных mysql, я получаю ошибку ниже, и, как и в предыдущем ответе на вопрос о stackoverflow, я помещаюprotected $fillable в мой файл модели, но все еще показываю ошибку.Ошибка при вставке данных mysql database,

, когда я создаю свою первую таблицу входа, ее принимают без каких-либо ошибок, но когда я делаю свою новую запись своей ошибкой.

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`app`.`articles`, CONSTRAINT `articles_ibfk_1` FOREIGN KEY (`article_id`) REFERENCES `users` (`id`)) (SQL: insert into `articles` (`article_head`, `article_body`) values (abkskfbasfbv, zbfvaksdvaskdvjsdc 
)) 

article.php

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Article extends Model 
{ 
    protected $fillable = [ 
     'article_head', 'article_body', 
    ]; 
    public $timestamps = false; 
} 

миграции файл

<?php 

use Illuminate\Database\Migrations\Migration; 
use Illuminate\Database\Schema\Blueprint; 

class CreateArticlesTable extends Migration { 

    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::create('articles', function(Blueprint $table) 
     { 
      $table->increments('article_id'); 
      $table->string('article_head', 500); 
      $table->string('article_body', 10000); 
      $table->dateTime('created_on'); 
      $table->timestamps(); 
     }); 
    } 


    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down() 
    { 
     Schema::drop('articles'); 
    } 

} 

2016_04_27_181606_add_foreign_keys_to_articles_table.php

<?php 

use Illuminate\Database\Migrations\Migration; 
use Illuminate\Database\Schema\Blueprint; 

class AddForeignKeysToArticlesTable extends Migration { 

    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::table('articles', function(Blueprint $table) 
     { 
      $table->foreign('article_id', 'articles_ibfk_1')->references('id')->on('users')->onUpdate('RESTRICT')->onDelete('RESTRICT'); 
     }); 
    } 


    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down() 
    { 
     Schema::table('articles', function(Blueprint $table) 
     { 
      $table->dropForeign('articles_ibfk_1'); 
     }); 
    } 

} 

+1

Возможный дубликат [Нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку:] (http://stackoverflow.com/questions/14063652/integrity-constraint-violation-1452-cannot-add-or-update- a-child-row) – e4c5

+0

, так мне нужно добавить столбец id в мою таблицу статей так же, как таблица пользователей? –

ответ

0

Это просто означает, что значение для article_id для табличных статей, которые вы вставляете, не существует у пользователей таблицы или вы не вставляете значение для статей пользователей таблицы. Голые в виду, что значения столбца article_id на пользователей таблицы зависит от значений ID на пользователей настольных

+0

так что я добавляю столбец id в таблицу моих статей –

+0

Да, попробуйте это и проверьте! –

+0

no its not working –

1

Помещенный

protected $primaryKey = "article_id"; 

в вашей модели статьи.

+0

no its не работает, когда я создаю свою первую запись в таблице статей, ее принимают без каких-либо ошибок, но когда я делаю свою новую запись, она показывает ошибки –

Смежные вопросы