2017-12-07 5 views
0

In Validate-Methode habe ich folgendes:Wie zu validieren Datum in Laravel

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

Die test_date in test_db wird als Unix-Zeit gespeichert. Bei der Abgabe von Form, bekomme ich $request->get('test_date') in mm/dd/Y

Die einzigartige Validierung nicht funktioniert, weil ich Datum in mm/dd/Y bekommen, die von db (Unix-Zeit) unterscheidet.

Wie wird es in dieser Validierung einzigartig gemacht?

+0

Also wollen Sie 'mm/dd/Y' in Unix-Zeit ändern? –

+1

überprüfen Sie diese https://stackoverflow.com/questions/41844102/date-format-not-validating-in-laravel –

+0

einmalig: test_db.test_date – Rits

Antwort

2

Sie können dies versuchen:

//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']); 

Hinzufügen von Feldern auf die Anfrage: Laravel is there a way to add values to a request array

UPDATE: Sie bestehende Feldmethode offsetSet aktualisieren können:

//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']); 

Updating Anfrage Felder: Modify request field value before saving in Laravel 5

0

Ich denke, wenn Sie das Format Datum ändern, dann wird alles in Ordnung sein, so versuchen Sie dies:

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

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

Verwendung dieses $newDate bei der Validierung.

Verwandte Themen