我不是100%确定这是否是失败的原因,但要指出几个提示。如果您使用旧版本的mySQL作为数据库,则默认表实现是myISAM,它不支持外键约束。由于脚本无法进行外键分配,因此最好在Schema的create方法中使用此语法明确声明希望将INNODB作为引擎。
Schema::create('lessons', function($table){ $table->engine = 'InnoDB'; $table->increments('id'); $table->string('title')->nullable(); $table->string('summary')->nullable(); $table->timestamps();});希望这可以减轻您遇到的问题。
另外,尽管您可以将外键声明为事后的想法,但是我可以在初始模式中创建外键,因为我可以轻松进行检查以确保已设置正确的数据库引擎。
Schema::create('tutorials', function($table){ $table->engine = 'InnoDB'; $table->increments('id'); $table->integer('author'); $table->integer('lesson'); $table->string('title')->nullable(); $table->string('summary')->nullable(); $table->string('tagline')->nullable(); $table->text('content')->nullable(); $table->text('attachments')->nullable(); $table->timestamps(); $table->foreign('author')->references('id')->on('users'); $table->foreign('lesson')->references('id')->on('lessons');});希望这有助于/解决您的问题。



