Laravel 4 架构生成器 - 循环引用

Laravel 4 Schema Builder - Circular Reference

我有一个用户 table 和一个公司 table

用户 table 有一个引用 Companies.id 的列 'company_id',公司有一个引用 Users.id

的列 'assignation'

显然,无论 table 我首先尝试创建什么,我都会收到一条错误消息,指出它无法创建引用约束,因为另一个 table 不存在。

我可以手动执行此操作,但我一直在寻找使用 artisan migrate 命令的方法。

有解决办法吗?

这是我的代码:

Schema::create('companies', function($table) {

            $table->increments('id');
            $table->string('name');
            $table->integer('priority');
            $table->string('color');
            $table->string('shortname');

            $table->integer('assignation');

            $table->foreign('assignation')->references('id')->on('users');

            $table->timestamps();

        });

Schema::create('users', function($table) {

            $table->increments('id');
            $table->string('username');
            $table->string('password');
            $table->string('email');
            $table->integer('security');
            $table->string('token');

            $table->integer('company_id');

            $table->foreign('company_id')->references('id')->on('companies');

            $table->timestamps();

        });

你可以这样做:

Schema::create('companies', function($table) {

        $table->increments('id');
        $table->string('name');
        $table->integer('priority');
        $table->string('color');
        $table->string('shortname');

        $table->integer('assignation');

        $table->timestamps();

    });

Schema::create('users', function($table) {

        $table->increments('id');
        $table->string('username');
        $table->string('password');
        $table->string('email');
        $table->integer('security');
        $table->string('token');

        $table->integer('company_id');

        $table->foreign('company_id')->references('id')->on('companies');

        $table->timestamps();

    });

Schema::table('companies', function($table)
    {
        $table->foreign('assignation')->references('id')->on('users');
    });