Larabel 5.2에서 전화번호를 확인하는 방법
사용자 입력 전화번호를 확인하고 싶습니다.번호는 정확히 11로 시작하고 01로 시작하며 값 필드는 숫자만 사용해야 합니다.Laravel 검증을 사용하여 어떻게 해야 합니까?
컨트롤러는 다음과 같습니다.
public function saveUser(Request $request){
$this->validate($request,[
'name' => 'required|max:120',
'email' => 'required|email|unique:users',
'phone' => 'required|min:11|numeric',
'course_id'=>'required'
]);
$user = new User();
$user->name= $request->Input(['name']);
$user->email= $request->Input(['email']);
$user->phone= $request->Input(['phone']);
$user->date = date('Y-m-d');
$user->completed_status = '0';
$user->course_id=$request->Input(['course_id']);
$user->save();
return redirect('success');
}
가능한 해결책 중 하나는 regex를 사용하는 것입니다.
'phone' => 'required|regex:/(01)[0-9]{9}/'
이렇게 하면 입력이 01로 시작하고 그 뒤에 9개의 숫자가 계속되는지 확인합니다.하면 regex가 numeric
★★★★★★★★★★★★★★★★★」size
검증 규칙
이 검증 방법을 다른 장소에서 재사용하는 경우는, 전화 번호의 검증에 관한 독자적인 검증 규칙을 작성하는 것을 추천합니다.
고객님의 고객명AppServiceProvider
의 »boot
★★★★
Validator::extend('phone_number', function($attribute, $value, $parameters)
{
return substr($value, 0, 2) == '01';
});
하면 " " " 를 할 수 있습니다.phone_number
어플리케이션의 임의의 장소에서 검증 규칙을 실행할 수 있으므로 폼 검증은 다음과 같습니다.
'phone' => 'required|numeric|phone_number|size:11'
에서는 '검증자'가 '검증자'인지 .$value
11시 정각시
Larabel 5.5부터는 장인 명령어를 사용하여 새로운 규칙을 작성할 수 있습니다.이 규칙은 요건에 따라 코드화하여 합격 여부를 결정할 수 있습니다.
EJ:php artisan make:rule PhoneNumber
다음 " " " 를 편집합니다.app/Rules/PhoneNumber.php
의 경우
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
return preg_match('%^(?:(?:\(?(?:00|\+)([1-4]\d\d|[1-9]\d?)\)?)?[\-\.\ \\\/]?)?((?:\(?\d{1,}\)?[\-\.\ \\\/]?){0,})(?:[\-\.\ \\\/]?(?:#|ext\.?|extension|x)[\-\.\ \\\/]?(\d+))?$%i', $value) && strlen($value) >= 10;
}
그런 다음 이 규칙을 보통 검증과 동일하게 사용합니다.
use App\Rules\PhoneNumber;
$request->validate([
'name' => ['required', new PhoneNumber],
]);
Validator::extend('phone', function($attribute, $value, $parameters, $validator) {
return preg_match('%^(?:(?:\(?(?:00|\+)([1-4]\d\d|[1-9]\d?)\)?)?[\-\.\ \\\/]?)?((?:\(?\d{1,}\)?[\-\.\ \\\/]?){0,})(?:[\-\.\ \\\/]?(?:#|ext\.?|extension|x)[\-\.\ \\\/]?(\d+))?$%i', $value) && strlen($value) >= 10;
});
Validator::replacer('phone', function($message, $attribute, $rule, $parameters) {
return str_replace(':attribute',$attribute, ':attribute is invalid phone number');
});
사용.
.app/Providers/AppServiceProvider.php
어플리케이션과 함께 부팅됩니다.
는 위의 검증됩니다.이 패턴은 전화 합니다.
번호 또는 합니다.
하면 " " " 를 할 수 있습니다.phone
내 에서 검증 을 사용할 수 폼은 다음과 같이 할 수식 검증은 다음과 같습니다.
'phone' => '필수|전화'
다음을 사용할 수 있습니다.
'mobile_number' => ['required', 'digits:10'],
required|numeric|size:11
required|min:11|numeric
이 전화 검증 패키지를 사용해 볼 수 있습니다.라라벨 전화기
갱신하다
최근 무료 Twilio 전화 조회 서비스를 사용하는 다른 패키지 Lavarel Phone Validator(stuyam/laravel-phone-validator)를 발견했습니다.
정말 생각해보면 전화번호를 확인할 때 고려해야 할 점이 많다.(특히 국제)패키지를 사용하는 것이 지금까지 받아들여지고 있는 답변보다 낫습니다.또한 regex와 같은 단순한 것을 원한다면 @SlateEntropy가 제안하는 것보다 더 나은 것을 사용하는 것을 추천합니다.(전화번호 확인을 위한 포괄적인 정규식 등)
아래 코드를 사용했는데 작동한다.
'PHONE' => 'required|regex:/(0)[0-9]/|not_regex:/[a-z]/|min:9',
$request->validate([
'phone' => 'numeric|required',
'body' => 'required',
]);
언급URL : https://stackoverflow.com/questions/36777840/how-to-validate-phone-number-in-laravel-5-2
'programing' 카테고리의 다른 글
c - 경고: 함수의 암묵적 선언 'printf' (0) | 2022.09.09 |
---|---|
Python에서 max-heap을 구현하려면 무엇을 사용해야 합니까? (0) | 2022.09.09 |
다른 파일에서 변수를 가져오시겠습니까? (0) | 2022.09.09 |
nullable 필드에 정의된 MySql 고유 제약 조건은 정확히 어떻게 작동합니까? (0) | 2022.09.09 |
PHPUnit을 사용하여 보호된 메서드를 테스트하는 모범 사례 (0) | 2022.09.09 |