2017-12-07 9 views
0

날짜를 확인하는 방법 :나는 다음과 같은 한 validate 메소드에서 laravel

$this->validate($request, ['test_date' => 'required|unique:test_db']); 

test_dbtest_date는 유닉스 시간으로 저장됩니다. 양식의 제출, 나는 mm/dd/Y

내가 DB에서 (유닉스 시간) 다른 mm/dd/Y 날짜를 얻을 수 있기 때문에 고유의 유효성 검사가 작동하지 않습니다에 $request->get('test_date')를 얻을.

어떻게이 유효성 검사에서 고유하게 만들 수 있습니까? 검증에

$date = $request->get('test_date'); 

$newDate = date('d-m-Y', strtotime($date)); 

사용이 $newDate을 : 당신이 다음 모든 것이 잘 될 것입니다 날짜 형식을 변경, 그래서이 시도하는 경우

+0

그래서 'mm/dd/Y'를 유닉스 시간으로 변경 하시겠습니까? –

+1

을 확인하십시오. https://stackoverflow.com/questions/41844102/date-format-not-validating-in-laravel –

+0

unique : test_db.test_date – Rits

답변

2

이 작업을 시도 할 수 있습니다 : 요청에

//get date from request 
$date = $request->get('test_date'); 

//add the converted date to request 
$request->request->add(['new_date_field'=> DateTime::createFromFormat('m/d/Y', $date)->getTimestamp()]); 

//validate the updated date field 
$this->validate($request, ['new_date_field' => 'required|unique:test_db']); 

추가 필드 : Laravel is there a way to add values to a request array

UPDATE :

//get date from request 
    $date = $request->get('test_date'); 

    //update date in request 
    $request->offsetSet('test_date', DateTime::createFromFormat('m/d/Y', $date)->getTimestamp()); 

    //validate the updated date field 
    $this->validate($request, ['test_date' => 'required|unique:test_db']); 

업데이트 요청 : 당신은 방법을 offsetSet 사용하여 기존의 필드를 업데이트 할 수 있습니다 입력란 : Modify request field value before saving in Laravel 5

0

나는 생각한다.

0

액세서 및 변경자라는 Laravel 제공 기능.

접근 자 및 변경자를 사용하면 모델 인스턴스에서 Eloquent 특성 값을 검색하거나 설정할 때 Eloquent 특성 값의 형식을 지정할 수 있습니다. 자세한 내용을 보려면 다음 사이트를 방문

이 당신을 도울 것입니다 https://laravel.com/docs/5.5/eloquent-mutators#accessors-and-mutators

희망.