Validation

PHOTO EMBED

Wed Oct 11 2023 06:22:26 GMT+0000 (Coordinated Universal Time)

Saved by @mradul

$uniqueRule = function ($attribute, $value, $fail) use ($id, $columnName) {
    if (!empty($value)) {
        $count = \DB::table('users')
            ->where($columnName, $value)
            ->where('id', '<>', $id)
            ->count();
        if ($count > 0) {
            $fail($attribute.' is not unique.');
        }
    }
};

$rules = [
    'password' => 'same:confirm-password',
    'email' => ['email', $uniqueRule->bindTo(null, null, $id, 'email')],
    'phone' => [$uniqueRule->bindTo(null, null, $id, 'phone')],
    'pan_card' => [$uniqueRule->bindTo(null, null, $id, 'pan_card')],
    'id_card_num' => [$uniqueRule->bindTo(null, null, $id, 'id_card_num')],
    // 'roles' => 'required'
];


$rules = [
    'password' => 'same:confirm_password', // Update 'confirm-password' to 'confirm_password'
    'email' => 'required|email|unique_except_current_user:users,email,' . $id,
    'phone' => 'nullable|unique_except_current_user:users,phone,' . $id,
    'pan_card' => 'nullable|unique_except_current_user:users,pan_card,' . $id,
    'id_card_num' => 'nullable|unique_except_current_user:users,id_card_num,' . $id,
    // 'roles' => 'required'
];

$rules = [
    'password' => 'same:confirm-password',
    'email' => [
        function ($attribute, $value, $fail) use ($id) {
            if (!empty($value)) {
                $count = \DB::table('users')->where('email', $value)->where('id', '<>', $id)->count();
                if ($count > 0) {
                    $fail($attribute.' is not unique.');
                }
            }
        },
    ],
    'phone' => [
        function ($attribute, $value, $fail) use ($id) {
            if (!empty($value)) {
                $count = \DB::table('users')->where('phone', $value)->where('id', '<>', $id)->count();
                if ($count > 0) {
                    $fail($attribute.' is not unique.');
                }
            }
        },
    ],
    'pan_card' => [
        function ($attribute, $value, $fail) use ($id) {
            if (!empty($value)) {
                $count = \DB::table('users')->where('pan_card', $value)->where('id', '<>', $id)->count();
                if ($count > 0) {
                    $fail($attribute.' is not unique.');
                }
            }
        },
    ],
    'id_card_num' => [
        function ($attribute, $value, $fail) use ($id) {
            if (!empty($value)) {
                $count = \DB::table('users')->where('id_card_num', $value)->where('id', '<>', $id)->count();
                if ($count > 0) {
                    $fail($attribute.' is not unique.');
                }
            }
        },
    ],
    // 'roles' => 'required'
];

$validator = Validator::make($request->all(), $rules);
content_copyCOPY