Inside rules, if current route is fast form, mark as nullable. Else require it.
//...
'password' => ( request()->route()->getName() === 'user.store.fast'
? ['nullable']
: ['required'] ),
//...
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Hi all,
I have 2 very identical forms and would like to use the same rules in a request. My request file currently has:
// \App\Http\Requests\UserStoreRequest
public function rules()
{
return [
'first_name' => ['required', 'max:255', 'string'],
'last_name' => ['required', 'max:255', 'string'],
'email' => ['required', 'unique:users,email', 'email'],
'password' => ['required'],
'business_name' => ['nullable', 'max:255', 'string'],
'roles' => 'array',
];
}
I have 2 store methods, one of them for a full form and the other for a fast filling of the same form. The only difference is that the fast form needs to auto generate a password. I was hoping to use the same request file(with rules) for both forms by bypassing the password with a "nullable" rule. To my surprise, the password is still required. Any idea how to bypass the password policy from "UserStoreRequest"?
public function storeFast(UserStoreRequest $request)
{
$validated = Validator::make(array_merge($request->all(), $request->route()->parameters()), [
'password' => 'string|max:64',
]);
$validated['password'] = Hash::make(str_random(12));
$validated = $request->validated();
Thanks
Inside rules, if current route is fast form, mark as nullable. Else require it.
//...
'password' => ( request()->route()->getName() === 'user.store.fast'
? ['nullable']
: ['required'] ),
//...
Please or to participate in this conversation.