我对Laravel Migrations有一些问题。 我的文章和标签之间有很多关系。 'article_tag'迁移:
Schema::create('article_tag', function (Blueprint $table) {
$table->integer('article_id')->unsigned()->index();
$table->foreign('article_id')->refrences('id')->on('tags')->onDelete('cascade')->onUpdate('cascade');
$table->integer('tag_id')->unsigned()->index();
$table->foreign('tag_id')->refrences('id')->on('articles')->onDelete('cascade')->onUpdate('cascade');
});
“标签”迁移:
Schema::create('tags', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->timestamps();
});
'文章迁移:
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body');
$table->timestamps();
});
我的控制台日志:
Illuminate \ Database \ QueryException:SQLSTATE [HY000]:常规错误: “)”附近的1:语法错误(SQL:创建表“ article_tag” (“ article_id”整数不为null,“ tag_id”整数不为null,外部 key(“ article_id”)在删除级联时引用“ tags”() 级联,外键(“ tag_id”)在删除时引用“ articles”() 在更新级联上级联)
异常跟踪:
1 PDOException::(“ SQLSTATE [HY000]:常规错误:” 1附近“]”: 语法错误”) /home/user/Desktop/blog/vendor/laravel/framework/src/Illuminate/Database/Connection.php:452
2 PDO :: prepare(“ create table” article_tag“(” article_id“整数 不为空,“ tag_id”整数不为空,外键(“ article_id”) 在外部更新级联上,在删除级联上引用“ tags”() key(“ tag_id”)在删除级联时引用“ articles”() 级联)”) /home/user/Desktop/blog/vendor/laravel/framework/src/Illuminate/Database/Connection.php:452
最佳Javad
答案 0 :(得分:5)
您的迁移中有拼写错误。您是说refrences->()
,但应该是references->()
Schema::create('article_tag', function (Blueprint $table) {
$table->integer('article_id')->unsigned()->index();
// in here
$table->foreign('article_id')->refrences('id')->on('tags')->onDelete('cascade')->onUpdate('cascade');
$table->integer('tag_id')->unsigned()->index();
// and in here too
$table->foreign('tag_id')->refrences('id')->on('articles')->onDelete('cascade')->onUpdate('cascade');
});