2016-04-11 11 views
7

Nel mio modello ho definito alcune regole di convalida per i campi data utilizzando before e after:Data - Come localizzare/tradurre le stringhe di "oggi" e "domani"

'birth_date' => 'required|date|before:today|after:01-jan-1920', 
'another_date' => 'required|date|before:tomorrow|after:01-jan-1990', 

La convalida funziona bene, ma non posso 't capire come tradurre le stringhe today e tomorrow sul messaggio di convalida.

Nel file validation.php lingua dei messaggi after e before sono localizzabili, tuttavia la parte :date del messaggio è ancora la visualizzazione della versione inglese per today e tomorrow.

"after"   => "The :attribute must be a date after :date.", 
"before"   => "The :attribute must be a date before :date.", 

Come potrei localizzare quelle due parole - today e tomorrow - nel messaggio di convalida?

+0

Le risposte finora sono solo soluzioni alternative. Cosa dobbiamo inserire nelle risorse/lang/which/validation.php per rappresentare "oggi" e "domani"? – MPS

risposta

0

probabilmente ha più senso per fare alcune convalide personalizzati, ma penso che si dovrebbe essere in grado di fare questo semplicemente con Carbon:

$dt = new Carbon\Carbon(); 
$today = $dt->today(); 
$tomorrow = $dt->tomorrow(); 

    $rules = [ 
     ... 
     'birth_date' => 'required|date|before:'.$today.'|after:01-jan-1920', 
     'another_date' => 'required|date|before:'.$tomorrow.'|after:01-jan-1990' 
    ]; 
0

È possibile utilizzare messaggi di convalida personalizzato per ogni campo, sia su file della lingua convalida o nel codice stesso: https://laravel.com/docs/5.2/validation#custom-error-messages

Diamo simulare una convalida controller per vedere come funziona:

<?php 
namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use Illuminate\Routing\Controller; 

class YourController extends Controller 
{ 
    public function store(Request $request) 
    { 
     $rules = [ 
      'birth_date' => 'required|date|before:today|after:01-jan-1920', 
     ]; 
     $messages = [ 
      'birth_date.before' => 'A data de nascimento deve ser uma data antes de hoje.', // "The birth date must be a date before today" in portuguese 
     ]; 

     $this->validate($request, $rules, $messages); 

     /* your stuff */ 
    } 
} 

Y Puoi anche farlo con form requests (che sono ancora più belli), tutto ciò che devi fare è restituire i tuoi messaggi personalizzati tradotti nel metodo messages(). :)