小编bla*_*and的帖子

新的 Laravel 项目一次添加多个带有外键的表

我启动了一个运行 5.6 的新 Laravel 应用程序,并在运行 migrate 之前简化我一次创建多个迁移的过程。我有大量的外键用于链接以使我的数据库易于扩展。

我的问题是尝试在迁移后期出现的数据库中引用外键。我相信它不起作用,因为我尝试引用的表尚未按操作顺序创建。

例如: create_users_table迁移:

$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');

$table->integer('user_id')->nullable()->unsigned();
$table->foreign('user_id')->references('id')->on('users');

$table->integer('type_id')->nullable()->unsigned();
$table->foreign('type_id')->references('type_id')->on('types');

$table->integer('post_id')->nullable()->unsigned();
$table->foreign('post_id')->references('post_id')->on('posts');

$table->rememberToken();
$table->timestamps();
Run Code Online (Sandbox Code Playgroud)

例如:create_types_table迁移:

            $table->increments('id');
            $table->string('type');

            $table->integer('user_id')->nullable()->unsigned();
            $table->foreign('user_id')->references('user_id')->on('users')->nullable();

            $table->integer('revenue_id')->nullable()->unsigned();
            $table->foreign('revenue_id')->references('revenue_id')->on('revenue')->nullable();

            $table->integer('hours_id')->nullable()->unsigned();
            $table->foreign('hours_id')->references('hours_id')->on('hours')->nullable();

            $table->integer('project_id')->nullable()->unsigned();
            $table->foreign('project_id')->references('project_id')->on('projects')->nullable();

            $table->integer('type_id')->nullable()->unsigned();
            $table->foreign('type_id')->references('id')->on('types');
            $table->timestamps();
Run Code Online (Sandbox Code Playgroud)

我在所有表格中都遵循这种相同类型的模式。我想我的问题是;这是因为表还没有创建,所以没有什么可参考的吗?有没有办法解决这个问题,或者我是否需要重新启动,创建所有表,然后为每个表添加另一个迁移以添加外键?

这可能是一个愚蠢的问题,我对 Laravel 还很陌生。这是我第一次尝试在早期将关系添加到应用程序中。

php laravel laravel-5

0
推荐指数
1
解决办法
3072
查看次数

标签 统计

laravel ×1

laravel-5 ×1

php ×1