Привет
Есть контролер где store успешно регистрирует нового пользователя. И здесь все хорошо.
Но вот с обновлением есть сложности. Все потому что в request установлены все поля как обязательные. Но я хотел бы иметь возможность обновлять только указанные поля. К примеру, я хочу обновить пароль, остальное трогать не нужно, и так далее. К тому же я бы хотел иметь возможность чтобы поле role_id мог обновлять только администратор, но не как не сам пользователь.
Прошу помощи у коллег. Подскажите или покажите как я могу это сделать?
Контроллер:
class UserController extends Controller
{
public function store(UserRequest $request)
{
$validated = $request->validated();
$user = User::create(
array_merge(
$validated,
['password' => bcrypt($validated['password'])]
)
);
return new UserResource($user);
}
public function update(UserRequest $request, User $user)
{
$user->update($request->validated());
return new UserResource($user);
}
}
Request:
class UserRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'email' => 'required|string|email|unique:users',
'first_name' => 'required|string|min:2|max:20',
'last_name' => 'required|string|min:3|max:20',
'password' => 'required|string|min:6|max:255',
'role_id' => 'required|integer|exists:roles,id'
];
}
}