我不知道如何为多对多关系编写迁移表。这是我的代码:
Schema::create('staff', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->string('firstname');
$table->string('lastname');
$table->char('link', 100)->nullable();
$table->string('country')->nullable();
$table->string('city')->nullable();
$table->string('occupation')->nullable();
$table->string('zipcode')->nullable();
$table->string('photo')->nullable();
$table->rememberToken();
$table->timestamps(); });
Schema::create('roles', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->integer('staff_id')->unsigned();
$table->foreign('staff_id')->references('id')->on('staff');
$table->timestamps();
});
Schema::create('role_staff', function (Blueprint $table) {
$table->increments('id');
$table->integer('role_id')->unsigned();
$table->integer('staff_id')->unsigned();;
$table->foreign('staff_id')->references('id')->on('staff');
$table->foreign('role_id')->references('id')->on('roles');
$table->timestamps();
});
我不确定我是否正确使用了外键?
答案 0 :(得分:0)
对我来说似乎很完美
从您的迁移脚本中,我了解到您有3个表
其中 staff 是存储所有职员的主表,并且使用 id 列在角色表中完成角色分配角色表的 staff_id 列上的 staff 的值。
稍后,您将所有引用存储在role_staff表中,其中解释了向 whom 赋予角色的角色。
因此通过触发此查询:
for each in data:
print each['_id']
print each['name']
print each['updated']
将为您提供所有人员以及分配给他们的角色的摘要。
注意:请在每个模式中定义表relationships。