基本的に、私はこの男と同じ問題を抱えていますが、テーブルプレフィックスを除いています。テーブルプレフィックスがないため、彼の修正は機能しません。http://forums.laravel.com/viewtopic.php?id=972
Laravelのスキーマビルダーを使用して次のようなテーブルを作成しようとしています。
Schema::create('lessons', function($table)
{
$table->increments('id');
$table->string('title')->nullable();
$table->string('summary')->nullable();
$table->timestamps();
});
Schema::create('tutorials', function($table)
{
$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();
});
Schema::table('tutorials', function($table)
{
$table->foreign('author')->references('id')->on('users');
$table->foreign('lesson')->references('id')->on('lessons');
});
問題は、このコードを(/ setupルートで)実行すると、次のエラーが発生することです。
SQLSTATE[HY000]: General error: 1005 Can't create table 'tutorials.#sql-2cff_da' (errno: 150)
SQL: ALTER TABLE `tutorials` ADD CONSTRAINT tutorials_author_foreign FOREIGN KEY (`author`) REFERENCES `users` (`id`)
Bindings: array (
)
ウェブ上の投稿とLaravelのEloquent関係を設定する方法について入手可能な限られたドキュメントに基づいて、私は何が間違っているのかわかりません...
users
すでに存在し、であるフィールドid
がありauto_increment
ます。また、適切な関係(belongs_to
およびhas_many
)を使用してモデルをセットアップしていますが、これが問題ではないことがわかる限り、データベースのセットアップです。DBはInnoDBです。
外部キーで何が間違っているのですか?