为了账号安全,请及时绑定邮箱和手机立即绑定

更新权限页面违反完整性约束

更新权限页面违反完整性约束

PHP
慕桂英4014372 2021-10-15 15:51:46
我在 Laravel 5.5 中使用 Laratrust 包,我制作了一个页面来创建具有角色和权限的用户。这运行良好,但问题出在我的更新页面上。我无法更新权限的值,我不知道为什么。这是我的更新页面代码:public function update(Request $request, User $user){     $request_data = User::find(1);     $request->validate([         'name' => 'required|string|max:255',        'email' => 'required|string|email|max:255|unique:users',    ]);   $request_data=$request->except(['permissions']);    $user->update($request_data);     $user->syncPermissions($request->permissions);      return redirect('dashboard/index');}这是我的编辑刀片页面:<form class="m-form m-form--fit m-form--label-align-right m-form--group-seperator" method="post" action="{{ url('dashboard/update/users',$user->id) }}">     {{ csrf_field() }}     {{ method_field('put') }}     <div class="m-portlet__body">                    <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">                        <label for="name" class="col-md-4 control-label">Name</label>                        <div class="col-md-6">                            <input id="name" type="text" class="form-control" name="name" value="{{ $user->name }}" required autofocus>                            @if ($errors->has('name'))                                <span class="help-block">                                    <strong>{{ $errors->first('name') }}</strong>                                </span>                            @endif                        </div>                    </div>
查看完整描述

2 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

您可以删除 role_permission 的记录,然后附加新的权限

$user->syncPermissions($request->permissions);

如果包中没有任何方法更新值,这可能对您有所帮助


查看完整回答
反对 回复 2021-10-15
?
holdtom

TA贡献1805条经验 获得超10个赞

首先,看看这一行:

$request_data = User::find(1);

我不确定为什么会出现这种情况 - 您在验证后立即重新定义它。建议去掉。

权限更新的问题可能在于您构建 sync() 方法的方式。这是我习惯看到的方式:

$user->permissions()->sync($request->get('permissions', []));

[] 是可选的,但试试看是否有帮助。

另外,我不确定$request对象的权限来自哪里。也许您没有将它包含在上面的代码片段中,但我没有看到它在刀片文件中的分配位置。因此,我的答案中的上述更新代码(Laravel 标准而不是包格式)至少应该有效 - 如果permissions表单上确实没有字段来更改权限,它应该恢复为无权限


查看完整回答
反对 回复 2021-10-15
  • 2 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信