Laravel 4 의 Validator 인증 확장 용법 상세 설명
인 터 페 이 스 를 쓰 든 웹 페이지 를 쓰 든 실질 적 으로 매개 변 수 를 입력 한 다음 에 업무 논 리 를 한 다음 에 구체 적 인 내용 을 출력 합 니 다.따라서 매개 변수 에 대한 검증 은 불가피 한 부분 입 니 다.예 를 들 어 전 달 된 email 이 비어 있 는 것 이 아니 라 합 법 적 인 email 형식 입 니까?laravel 은 이미 phoper 를 위해 이러한 논 리 를 간소화 하 는 방법 을 생각 했다.바로 Validator 입 니 다.
Validator 사용
검증 기 를 만들다
vaidator 는 Validator::make 를 사용 하여 검증 기 를 만 들 수 있 습 니 다.그리고 검증 기 를 사용 하여 들 어 오 는 매개 변수 가 합 법 적 인지 판단 한다.
make 의 정의 보기:
public Validator make(array $data, array $rules, array $messages = array(), array $customAttributes = array())
$data 는 key value 의 검증 할 데이터 입 니 다.$rules 는 검 증 된 규칙 입 니 다.
$messages 는 알림 메시지 입 니 다.
$customeAttributes 는 속성 별명 을 설정 합 니 다.
그 중 에 두 가지 메 시 지 는 모두 정 보 를 알 리 기 위해 설정 한 것 이다.
예 를 들 어 이해 하면 vaidator 가 이해 합 니 다.
public function getIndex()
{
$rules = array(
'email' => 'required|email',
'name' => 'required|between:1,20',
'password' => 'required|min:8',
);
$message = array(
"required" => ":attribute ",
"between" => ":attribute :min :max "
);
$attributes = array(
"email" => ' ',
'name' => ' ',
'password' => ' ',
);
$validator = Validator::make(
Input::all(),
$rules,
$message,
$attributes
);
if ($validator->fails()) {
$warnings = $validator->messages();
$show_warning = $warnings->first();
return Response::Json(compact('show_warning'));
}
return Response::Json("ok");
}
이 예 에서하면,만약,만약...
/index?name=12321321321321321321321
되 돌 아 옵 니 다:
{
show_warning: " "
}
Input::all()모든 매개 변 수 를 입력 하여 검증 합 니 다.rule 은 이메일 필드 가 비어 있 으 면 안 되 며 이메일 형식 에 맞 아야 합 니 다.rule 은 이메일 필드 가 비어 있 으 면 안 되 며 이메일 형식 에 맞 아야 합 니 다.message 는 required 규칙 을 위반 하면 잘못된 형식 을"attribute 가 비어 있 으 면 안 됩 니 다"라 고 설명 합 니 다.
$attributes 는 표 시 된 오류 중 email 이 문자"전자 우편"으로 표 시 됨 을 설명 합 니 다.
위의 몇 가지 설정 을 합치 면 마지막 매개 변수 가 이메일 을 보 내지 않 았 을 때 나타 나 는 오류 정 보 는 다음 과 같 습 니 다.
"이메일 이 비어 있 으 면 안 됩 니 다."
Validator 인증 확장
인증 규칙 확장
예 를 들 어 핸드폰 번호 가 합 법 적 인지 검증 해 야 하 는 문제 에 직면 하 게 될 것 입 니 다.laravel 의 Validator 는 핸드폰 번호 검증 규칙 을 제공 하지 않 았 습 니 다.각 국가의 핸드폰 번호 규칙 이 일치 하지 않 기 때 문 입 니 다.
그런데 이거 Validator 를 사용 해서 검증 을 하려 면 어떻게 해 야 하나 요?
Validator::extend('mobile', function($attribute, $value, $parameters)
{
return preg_match('/^0?(13[0-9]|15[012356789]|18[0-9]|14[57])[0-9]{8}$/', $value);
});
그리고 rule 에 서 는 모 바 일 을 규칙 으로 사용 할 수 있 습 니 다.이런 확장 검증 규칙 은 어디 에 두 어야 합 니까?
필 터 스 동급 디 렉 터 리 에 vaidator.php 를 추가 한 다음 start/global.php 에서
require app_path().'/validator.php';
출력 정보 통일 알림위의 예 에서 message 와 message 와 attribute 는 모두 vaidator 를 사용 할 때 스스로 정의 해 야 합 니 다.귀 찮 습 니 다.더 좋 은 방법 으로 통일 적 으로 설정 할 수 있 습 니까?
vaidator 의 알림 설정 은 언어 에 따라 설 정 됩 니 다.
언어 설정 은 config 디 렉 터 리 에 있 는 app.php 에 있 는 locale 로 정 의 됩 니 다.기본 값 은 en 입 니 다.
en 에 대응 하 는 오류 알림 은 모두 lang 디 렉 터 리 의 en 디 렉 터 리 에 있 는 vaidation.php 에 설정 되 어 있 습 니 다.
lang/en/vaidation.php 를 한 번 보면 해당 하 는 영어 힌트 정보 가 어떻게 나 왔 는 지 알 수 있 습 니 다.
중국어 알림 설정:
① config/app.php 의 locale 을 수정 하여 ch 로 설정 합 니 다.
② lang/ch/validation.php 생 성
③ vaidation.php 파일 을 수정 하고 그 안에 있 는 알림 정 보 를 중국어 로 변경 합 니 다.알림 정보 에 있 는:attribute 는 표시 할 때 해당 하 는 속성 이름 으로 대 체 됩 니 다.attributes 는 속성 을 설정 한 중국어 이름 입 니 다.
여기 서 라 라 벨 의 언어 간 지원 이 어떤 모습 인지 알 수 있다.
lang 아래 폴 더 는 vaidation.php 외 에 도 페이지 가 있 습 니 다:pagination.php,알림:reminders.php 파일.
laravel 은 어떤 rule 규칙 을 가지 고 있 습 니까?
수첩 을 살 펴 보 세 요.4567915)
더 많은 Laravel 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.,,,,,,및,
본 고 는 Laravel 프레임 워 크 를 바탕 으로 하 는 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.