描述
我有一个小的用户/角色管理系统,并希望管理员能够更改用户的密码和名称。到目前为止,它适用于以下代码UsersController
:
public function update(request $request, User $user)
{
// dd($request);
//Save roles
$user->roles()->sync($request->roles);
//Save user
$user->name = $request->input("name");
if ($request->input('password')) {
$user->password = Hash::make($request->input('password'));
}
$user->save();
return redirect()->route("admin.users.index");
}
UpdateUser
我创建了一个使用此命令调用的表单请求php artisan make:request UpdateUser
并将其带入UsersController
withuse App\Http\Requests\UpdateUser;
并更改public function update(request $request, User $user)...
为public function update(UpdateUser $request, User $user)...
(我从这个网站得到了这个教程)
UpdateUser
看起来像这样,基本功能应该是验证密码输入和密码确认输入是否匹配。
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class UpdateUser extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => ['string', 'max:255', "unique:users"],
'password' => ["nullable", 'string', 'min:6', 'confirmed'],
'roles' => ['exists:roles,id'],
];
}
}
问题
没有UpdateUser
它就可以工作。我可以更改名称、密码和角色。但UpdateUser
我只能更改名称。无法更改角色或密码。当我尝试更改角色和/或密码并提交时,只会重新加载编辑页面。
那么这可能是什么原因呢?
你可以在这里找到我的整个回购