我使用Laravel 5和Entrust创建了一个基于角色的项目,一切正常,直到我尝试更新用户的角色列表,血腥的"完整性约束违规"提醒我,在调用时
$user->attachRoles($roles);
Run Code Online (Sandbox Code Playgroud)
它不会首先删除用户的角色,所以我检查usertrait的界面,然后想出来
$user->detachRoles($user->roles);
$user->attachRoles($roles);
Run Code Online (Sandbox Code Playgroud)
代码看起来很丑陋,我认为有三个SQL被执行了
我真的希望它会像
$user->updateRoles($roles);
Run Code Online (Sandbox Code Playgroud)
这可以比较现有的角色,并做一些优化.
我错过了什么吗?
在python中,当您选择子列表时
a = [1,2,3]
sub_a = a[2:10]
Run Code Online (Sandbox Code Playgroud)
它不会炸毁而是返回[3]。
在Java中,事实完全不同
List<Integer> a = Arrays.asList(1,2,3);
a.subList(2, 10);
Run Code Online (Sandbox Code Playgroud)
将抛出IndexOutOfBoundsException。
我不会判断不同的方法,但是我想知道Java是否可以以Python的方式实现相同的列表切片操作?