سلام
خسته نباشید
ی سوال داشتم دوستان
ممنون میشم راهنماییم کنید
من چطوری میتونم در کد زیر شماره موبایل رو ولیدیت کنم؟
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'] من بصورت زیر هست
@hosseinshirinegad98
مچکرم از پاسختون
اما من در واقع میخوام اون آرایه ای که فرستادم رو ولیدیت کنم
برای این قسمتش مشکل دارم
سلام
یه این شکل بنویسید
'phoneType.*' => ['required', '(0|\+98)?([ ]|-|[()]){0,2}9[1|2|3|4]([ ]|-|[()]){0,2}(?:[0-9]([ ]|-|[()]){0,2}){8}']
$phone_number = '09123456789';
if(preg_match("/^09[0-9]{9}$/", $phone_number)) {
echo "Valid Number";
}else{
echo "Invalid Number";
}
به این صورت هم میشه از این کد الگو بگیرید
همین کدو ببرید توی حلقه
سلام
مچکرم از پاسختون
این کد چه نوع شماره هایی رو اعتبارسنجی میکنه؟
میخوام هم شماره موبایل رو بگیره و هم شماره ثابت
ممنون میشم اگر بازم راهنماییم کنید🌺
@samanzdev
ممنونم خیلی
ی سوال دیگه
همین رو میشه با تابع preg_match هم پیادهسازی کرد بزرگوار؟
یعنی چی or؟
برای اعتبار سنجی شماره موبایل همون عبارت رو قرار بدید.
می تونید داخل شرط if قرار بدید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟