File "UpdateUserRequest.php"
Full Path: /home/clickysoft/public_html/jmapi5.clickysoft.net/app/Http/Requests/Admin/UpdateUserRequest.php
File size: 2.95 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace App\Http\Requests\Admin;
use App\Models\User;
use Gate;
use Illuminate\Foundation\Http\FormRequest;
class UpdateUserRequest extends FormRequest
{
public function authorize()
{
return Gate::allows('user_edit');
}
public function rules()
{
return [
'name' => [
'string',
'required',
],
'email' => [
'required',
'unique:users,email,' . request()->route('user')->id,
],
'password' => [
'nullable',
'regex:/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[a-zA-Z]).{8,}$/i',
],
'phone_number' => [
'nullable',
'max:20',
],
'company' => [
'nullable',
'string',
'max:50',
],
'fax_number' => [
'nullable',
'string',
'max:50',
],
'roles' => [
'required',
'array',
],
'roles.*' => [
'integer',
'exists:roles,id',
],
'user_type' => [
'required',
'integer',
'in:'.implode(",", array_keys(User::USER_TYPE_RADIO))
],
'status' => [
'required',
'integer',
'in:'.implode(',', array_keys(User::STATUS_RADIO))
],
'profile_image' => [
'nullable',
'mimes:jpg,gif,png',
],
'reminder_duration' => [
'nullable',
'in:' . implode(',', User::REMINDER_DURATION),
],
'birth_date' => [
'nullable',
'date',
'before:today'
],
'secondary_email' => [
'nullable',
'email',
],
'secondary_name' => [
'nullable',
'max:20',
],
'secondary_phone' => [
'nullable',
'max:20',
],
'sms_notification' => [
'in:0,1',
],
];
}
public function messages()
{
return [
'roles.*.integer' => 'Role #:position must be an integer.',
'roles.*.exists' => 'Invalid role on position #:position.',
'user_type.in' => "Invalid user type.",
'password.regex' => 'Password should contain at least 8 characters, one letter, one number & one special character.',
'phone_number.integer' => 'Phone number can only contain numbers.',
'secondary_phone.integer' => 'Secondary phone can only contain numbers.',
'reminder_duration.in' => ':attribute can only be '. implode(',', User::REMINDER_DURATION),
];
}
}