【发布时间】:2018-02-13 16:04:33
【问题描述】:
我希望用户有一个像用户、管理员、编辑器这样的等级......但是我不能从等级表中添加外键来在用户表中的等级列中。
这是排名表迁移
Schema::create('ranks', function (Blueprint $table) {
$table->increments('id');
$table->string('rank', 32)->charset('utf8')->nullable($value = false);
});
这就是用户表迁移
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 64)->charset('utf8')->nullable($value = false);
$table->string('email', 128)->unique()->charset('utf8')->nullable($value = false);
$table->string('password', 128)->charset('utf8')->nullable($value = false);
$table->integer('rank')->unsigned()->default(1);
$table->foreign('rank')->references('id')->on('ranks')->nullable($value = false);
$table->rememberToken();
$table->timestamps();
});
【问题讨论】:
-
$table->foreign('rank')->references('id')->on('ranks')->nullable($value = false);这行是什么意思?为什么可以为空()?你遇到了什么错误? -
删除所有
$value = false和rank整数列的默认调用。 -
@Sohel0415 使 collum 不能为空 错误:SQLSTATE[HY000]:一般错误:1005 无法创建表
hots.#sql-268_5d df(errno: 150 "外键约束格式不正确”)(SQL:更改表users添加约束users_rank_foreign外键(rank)引用ranks(id)) -
@Joel Hinz 不起作用