مشکات
3 سال پیش توسط مشکات مطرح شد
12 پاسخ

انجام اعتبارسنجی برای شماره تلفن

سلام
خسته نباشید
ی سوال داشتم دوستان
ممنون میشم راهنماییم کنید

من چطوری میتونم در کد زیر شماره موبایل رو ولیدیت کنم؟

 public function store(Request $request,Role $role)
    {
//        try{

            foreach($request->all() as $key => $input) {
//                dd(strpos($key, "phoneType_"));
                if(strpos($key, "phoneType_") !== false) {
                    $phoneTypeId = str_replace("phoneType_", "", $key);
//                    dd( $phoneTypeId);
                    $data["phoneType"][$phoneTypeId] = $input;
                }
            }
//           dd($data['phoneType']);

            $validate = $request->validate([
                'first_name' => ['required', 'string', 'max:120', 'min:3'],
                'last_name' => ['required', 'string', 'max:120', 'min:3'],
                'username' => ['required', 'string', 'max:120', 'min:3'],
                'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
//            'role_id' => ['required', 'integer'],
                'position' => ['required', 'string', 'max:120', 'min:3'],
                'password' => ['required', 'string', 'min:8'],
                'phoneBook' => 'required|array',
                'phoneType' => ['required|regex:/([0-9\+\])/|min:10']

            ]);
//            dd($data);

            if (isset($_POST['status'])) {
                $_POST['status'] = 1;
            }else
                $_POST['status']=0;
            $role1= Role::where('name','contact')->first()->id;
//        dd($role1);

            $contact= User::create([
                'first_name' =>  $validate['first_name'],
                'last_name' =>  $validate['last_name'],
                'username' =>  $validate['username'],
                'email' =>  $validate['email'],
                'role_id' => $role1,
                'position' =>  $validate['position'],
                'password' => Hash::make(( $validate['password'])),
                'status' => $_POST['status']
            ]);
//            dd($contact);

            $phoneBookUser = [];
            foreach( $validate["phoneBook"] as $key => $phoneBookId){
                $phoneBookUser[$phoneBookId] = ["order" => 1];
            }
//        dd($phoneBookUser);

            $phoneTypeUser = [];
            if (isset($data["phoneType"])) {
                foreach ($data["phoneType"] as $key => $phoneNumber) {
                    if (!empty($phoneNumber) || !is_null($phoneNumber)) {
                        $phoneTypeUser[$key] = ["phone_number" => $phoneNumber];
//                        $dd=$request->validate([$phoneNumber =>'regex:/([0-9\+\])/|min:10']);
//                        dd($dd);
                    }
                }
            }

            $user = \App\Models\User::where("id", $contact->id)->first();
            $user->phonebooks()->attach($phoneBookUser);
            $user->phonetypes()->attach($phoneTypeUser);

//        } catch(\Exception $e) {
//
//            return view("user.create" , ['validationErrors' => ["failed operation"]], compact('phoneTypes', 'phoneBooks'));
//        }

        return redirect()->route('users');

    }

خروجی $data['phoneType'] من بصورت زیر هست

توضیح تصویر رو وارد کنید


ثبت پرسش جدید
حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 3 سال پیش مطرح شد
0

سلام

'phoneType' => ['required', 'regex:/^09[0-9]{9}$/']

مشکات
تخصص : کاراموز
@meshkat315 3 سال پیش مطرح شد
0

@hosseinshirinegad98
مچکرم از پاسختون
اما من در واقع میخوام اون آرایه ای که فرستادم رو ولیدیت کنم
برای این قسمتش مشکل دارم


Saman
تخصص : برنامه نویس وب
@samanzdev 3 سال پیش مطرح شد
0

سلام
یه این شکل بنویسید

'phoneType.*' => ['required', '(0|\+98)?([ ]|-|[()]){0,2}9[1|2|3|4]([ ]|-|[()]){0,2}(?:[0-9]([ ]|-|[()]){0,2}){8}'] 

حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 3 سال پیش مطرح شد
0
$phone_number = '09123456789';

if(preg_match("/^09[0-9]{9}$/", $phone_number)) {
   echo "Valid Number";
}else{
   echo "Invalid Number";
}

به این صورت هم میشه از این کد الگو بگیرید
همین کدو ببرید توی حلقه


مشکات
تخصص : کاراموز
@meshkat315 3 سال پیش مطرح شد
0

@samanzdev

سلام
مچکرم از پاسختون
این کد چه نوع شماره هایی رو اعتبارسنجی میکنه؟
میخوام هم شماره موبایل رو بگیره و هم شماره ثابت
ممنون میشم اگر بازم راهنماییم کنید🌺


Saman
تخصص : برنامه نویس وب
@samanzdev 3 سال پیش مطرح شد
0

سلام
برای تمامی شماره می تونید اینو استفاده کنید، اینو خودم امتحان کردم.
توضیح تصویر رو وارد کنید


مشکات
تخصص : کاراموز
@meshkat315 3 سال پیش مطرح شد
0

@samanzdev
ممنونم خیلی
ی سوال دیگه
همین رو میشه با تابع preg_match هم پیادهسازی کرد بزرگوار؟


Saman
تخصص : برنامه نویس وب
@samanzdev 3 سال پیش مطرح شد
0

آره میشه 👍


مشکات
تخصص : کاراموز
@meshkat315 3 سال پیش مطرح شد
0

@samanzdev
توی preg_match چطوری میتونم or رو تعریف کنم؟😥


Saman
تخصص : برنامه نویس وب
@samanzdev 3 سال پیش مطرح شد
0

یعنی چی or؟
برای اعتبار سنجی شماره موبایل همون عبارت رو قرار بدید.
می تونید داخل شرط if قرار بدید.


مشکات
تخصص : کاراموز
@meshkat315 3 سال پیش مطرح شد
0

@samanzdev
متوجه شدم
ممنونم ازتون🌺☘️


Saman
تخصص : برنامه نویس وب
@samanzdev 3 سال پیش مطرح شد
0

خواهش میکنم
اگه میشه گفتگو رو ببندید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام