J'ai une date de début et une date de fin dans un formulaire ...
Dans ma méthode rules code > J'ai ceci:
if ($this->request->get('date_revision_start') < $this->request->get('date_revision_end')) { return redirect()->route('revisions.index') ->with('error', 'The end date cannot be before the start date!'); }
La date de fin ne peut pas être antérieure à la date de début. Où dois-je faire la condition? Dans le contrôleur?
public function rules() { return [ // 'date_revision_start' => 'after:2009-01-01|before:2023-01-01', 'date_revision_end' => 'after:2009-01-01|before:2023-01-01' ]; }
3 Réponses :
Vous n'avez pas besoin de vérifier la condition si vous utilisez la validation
public function rules() { return [ // 'date_revision_start' => 'after:2009-01-01|before:2023-01-01', 'date_revision_end' => 'after:date_revision_start|before:2023-01-01' ]; }
Merci Karan. ^^
Heureux de vous aider ... @ user11124425
Vous pouvez utiliser Carbon et faire quelque chose comme ceci:
public function rules() { return [ 'date_revision_end' => 'date|after:date_revision_start|before:2023-01-01' ]; }
Si vous utilisez comme ça, vous pouvez le faire au démarrage de votre contrôleur.
Ou vous pouvez utiliser la validation:
if (Carbon::parse($request->get('date_revision_start')->greaterThan(Carbon::parse($this->request->get('date_revision_end')))) { return redirect()->route('revisions.index') ->with('error', 'The end date cannot be before the start date!'); }
Vous devriez essayer ceci:
public function rules() { return [ // 'date_revision_start' => 'after:2009-01-01|before_or_equal:2023-01-01', 'date_revision_end' => 'after:2009-01-01|after_or_equal:2023-01-01' ]; }