2016-06-19 3 views
0

Laravel에서 유효성 검사기에 대한 사용자 지정 메시지를 만들 수 있습니다. 그러나 나는 준비된 메시지가 약간 잘못되었음을 발견했다. beforeafter 유효성 검사 규칙을 사용하면 매개 변수는 documentation에서 설명한 것과 같이 strtotime으로 변환됩니다.유효성 검사 전/후에 Laravel

그래서 규칙을 설정하면 'expires' => 'before:+1 year' 규칙이 작동하고 정확합니다. 사용자가 잘못된 값을 입력한다면, Laravel 메시지처럼 인쇄 :

은 일년

이 메시지 전에 날짜해야합니다 만료 평균 클라이언트에 대한 매우 불분명하다. 메시지가 strtotime으로 변환 될 것으로 예상되었습니다.

더 명확한 오류 메시지를 인쇄하려면 깨끗한 방법이 있습니까?

답변

0

원하는 경우 사용자 지정 메시지로 유효성 검사 메시지를 무시할 수 있습니다. 양식 요청 클래스에서

,과 같이 메시지를 다음과 같은 방법을 추가 및 변경 :

public function messages() 
{ 
    return [ 
     // 'fieldname.rulename' => 'Custom message goes here.' 
     'email.required' => 'Er, you forgot your email address!', 
     'email.unique' => 'Email already taken m8', 
    ]; 
} 

업데이트 :

전역 메시지를 변경하려는 경우, 당신은 validation.php을 열 수 있습니다 resources/lang/en/validation.php 안에 파일을 만들고 거기에서 메시지를 편집하십시오.

+0

그러나 각 유효성 검사기에 대해이를 수행하는 대신 기본적으로 규칙 이후/이후에이를 수행 할 수 있습니까? – nrofis

+0

그래, 나는 왜 안 볼지 모르겠다. 이것들은 당신에게 아이디어를주는 예일 뿐이다. 그냥 필드 이름과 규칙 이름을 변경하면 좋은 가야한다. – Ruffles

+0

나는 그것을 이해하지만'before'와'after'를 가진 많은 유효성 검사기를 가지고 있습니다. 나는 그들을 수동으로 모두 바꾸고 싶지 않습니다 .... – nrofis

0

할 수 있습니다 사용자 AppServiceProvider.php
하고
/app/Providers/AppServiceProvider.php이 새 유효성 검사 규칙을 작성하고 validation.php 파일에 오류 메시지를 설정할 수 있습니다
/자원/LANG/EN/validation.php

예 :

Validator::extend('before_equal', function ($attribute, $value, $parameters) { 
     return strtotime(Input::get($parameters[0])) >= strtotime($value); 
    }); 

상기 메시지는

'before_equal' => 'The :attribute field is only accept date format before or equal to end date',   

시도해보고 필요에 따라 변경할 수 있습니다.

관련 문제