Php 使用带有引用的laravel迁移创建两个表
我需要创建两个表: 第一篇Php 使用带有引用的laravel迁移创建两个表,php,laravel,reference,migration,laravel-artisan,Php,Laravel,Reference,Migration,Laravel Artisan,我需要创建两个表: 第一篇文章: public function up() { Schema::create('articles', function (Blueprint $table) { $table->increments('id'); $table->integer('user_id')->unsigned(); $table->string('title');
文章
:
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->string('title');
$table->text('body');
$table->timestamps();
$table->timestamp('roba_spremna');
$table->timestamp('auction_end');
$table->string('key');
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade');
});
}
然后提供了:
public function up()
{
Schema::create('offers', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->integer('article_id');
$table->integer('price');
$table->string('comment');
$table->timestamps();
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade');
$table->foreign('article_id')
->references('id')
->on('articles')
->onDelete('cascade');
});
}
当我运行php artisan migrate
时,我得到:
有什么问题?为什么我不能成功创建这两个表?这是因为已经创建了表。删除表格并重新运行。如果您想引用表格的id
列,您的列需要取消签名,提供的表格中的article\u id
列没有取消签名,取消签名并刷新迁移表已存在于数据库中…手动检查数据库..我尝试删除表并重新运行迁移,但我得到:PS PS C:\wamp\www\learn5>php artisan迁移:刷新回滚:2014\u 10\u 12\u 100000\u创建密码\u重置\u表回滚:2014\u 10\u 12\u000000\u创建用户\u表[Lightlight\Database\QueryException]SQLSTATE[HY000]:一般错误:1215不可能的索引外部(SQL:alter table提供
添加约束提供(文章id)外键(文章id
)引用
文章
(id
)关于删除CACACAD的[PDOException]SQLSTATE][HY000]:一般错误:1215不可能的外部索引索引。您可能需要删除整个数据库并重新运行。