Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写alter迁移在laravel中添加复合密钥_Laravel_Laravel 5_Laravel 4_Migration - Fatal编程技术网

如何编写alter迁移在laravel中添加复合密钥

如何编写alter迁移在laravel中添加复合密钥,laravel,laravel-5,laravel-4,migration,Laravel,Laravel 5,Laravel 4,Migration,我是新来的。我希望相同的用户不能再获得相同的角色。从我将角色1分配给用户1时的邮递员,到下次我再次将角色1分配给用户1时,这种情况不应该发生。我有一个role_user表,其中有3列id,角色id,用户id。我想要一个用于role\u id,user\u id的复合键。但是我怎么写这个我不知道 public function up() { Schema::table('role_users', function (Blueprint $table) { //

我是新来的。我希望相同的用户不能再获得相同的角色。从我将角色1分配给用户1时的邮递员,到下次我再次将角色1分配给用户1时,这种情况不应该发生。我有一个role_user表,其中有3列<代码>id,
角色id
用户id
。我想要一个用于
role\u id
user\u id
的复合键。但是我怎么写这个我不知道

 public function up()
 {
    Schema::table('role_users', function (Blueprint $table) {
       //     
    });
 }

此迁移要更新原始列,请在多个列上设置唯一约束:

 public function up()
 {
    Schema::table('role_users', function (Blueprint $table) {
          $table->unique(array('role_id', 'user_id'));
    });
 }

您可以使用的laravel权限创建角色@sta,我只想为这两列创建复合键。我该怎么做?你是说复合唯一约束?@OMR是的,我希望同一个用户不能再获得相同的角色。从我将角色1分配给用户1时的邮递员,到下一次我将角色1分配给用户1时,应该不会发生这种情况。这是针对alter迁移还是针对主迁移文件?这是针对alter迁移,如果您可以重新分配迁移,您可以添加:$table->unique(数组('role_id',user_id');对于您的原始onefor用户,不应再次分配相同的角色,是将角色id、用户id组合键还是id、角色id组合键?请您建议我,对于用户不应再次分配相同的角色,您应该使两列都唯一,因此,如果在插入或更新操作中再次出现1,1,db将抛出冲突索引错误“您应该使两列都唯一”哪个列?