伙计们,我可以在stakoverflow社区上使用一些帮助,问题是我有一个索引视图,所有方法均从该视图中触发,create方法也可以正常工作,update方法也可以正常工作,问题是当编辑表单会显示一个复选框,该复选框指示用户的角色未显示为选中状态,我必须重新选中该复选框以使方法更新正常工作,否则它将不起作用,这是我的代码。
编辑模式:
{{ Form::open(['autocomplete' => 'off', 'id' => 'edit_user_form']) }}
<div id="edit_user_modal" class="modal fade" role="dialog">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title text-center">Actualizar Usuario</h4>
</div>
<div class="modal-body">
<div id="response"></div>
{{ Form::textGroup('name', 'Nombre', ['id' => 'edit_name']) }}
{{ Form::emailGroup('email', 'Correo Electrónico', ['id' => 'edit_email']) }}
{{ Form::checkboxGroup('roles', 'Roles', $roles, 'display_name', ['id' => 'edit_roles']) }}
</div>
<div class="modal-footer">
{{ Form::submit('Guardar', ['class' => 'btn btn-success']) }}
<button type="button" class="btn btn-default" data-dismiss="modal">Regresar</button>
</div>
</div>
</div>
</div>
{{ Form::close() }}
编辑方法:
public function edit(Request $request)
{
$id = $request->input('id');
$user = User::with('roles')->find($id);
return response()->json($user);
}
编辑按钮:
protected function getEditButtonAttribute()
{
if (Auth::user()->hasPermission('update-users')) {
if ($this->id != 1) {
return '<li><a href="javascript:void(0);" class="btn-edit" id="' . $this->id . '">Editar Usuario</a></li>';
}
return '';
}
return '';
}
编辑路线:
Route::get('user/{user}', 'Auth\UserController@edit')->name('user.edit');
最后编辑脚本:
edit_name = $('#edit_name');
edit_email = $('#edit_email');
edit_roles = $('#edit_roles');
edit_user_modal = $('#edit_user_modal');
$(document).on('click', '.btn-edit', function () {
id = $(this).attr("id");
$.ajax({
url: "{{ url("user") }}" + "/" + id,
method: 'GET',
data: {id: id},
dataType: 'json',
success: function (data) {
edit_name.val(data.name);
edit_email.val(data.email);
edit_roles.val(data.roles);
edit_user_modal.modal('show');
}
})
});
感谢您的关注。
答案 0 :(得分:0)
从您的代码看来,“角色”不是在用户模型上定义的,而是一种关系。如果是这样,您的典型表单模型绑定可能无法按预期工作。为了解决此问题,您可以尝试对User模型使用“ appends”属性,并将“ role”作为附加属性。然后它将本地加载。如果那行不通,我建议您自己创建一个表单字段,而不要依赖Form外观,因为您将对输入有更多的控制权,并且可以轻松地覆盖Laravel表单助手的内置功能。