【发布时间】:2016-08-23 13:30:50
【问题描述】:
在将数据插入 mysql 数据库时,我收到以下错误,并且在 stackoverflow 上的一些先前问题的答案中,我将 protected $fillable 放在我的模型文件中,但仍然显示错误。
当我创建我的第一个条目表时,它没有任何错误地接受,但是当我制作我的新条目时,它显示错误。
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
))
文章.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');
});
}
}
【问题讨论】:
-
那么我需要将 id 列添加到与 users 表相同的文章表中吗?
标签: php mysql sql laravel-5 foreign-key-relationship