2014-12-07 3 views
5

voglio per convalidare i valori richiesti dalla azione di controllo in questo modo:Come cambiare database in Validator in laravel

// validate the info, create rules for the inputs 
    $rules = array(
     'username'  => 'required|min:5|unique:users,username', 
     'email'   => 'required|email|unique:users,email', 
     'password'  => 'required|min:8', 
    ); 

    // run the validation rules on the inputs from the form 
    $validator = Validator::make(Input::all(), $rules); 

Tutto va bene se sto utilizzando il database di default , ma per questo ho Validation bisogno di controllare le tabelle in altri database. In config Ho due banche dati:

'connections' => array(

    'main' => array(
     'driver' => 'mysql', 
     'host'  => '*******', 
     'database' => '*******', 
     'username' => '*******', 
     'password' => '*******', 
     'charset' => 'utf8', 
     'collation' => 'utf8_general_ci', 
     'prefix' => 'ko_', 
    ), 

    'server_auth' => array(
     'driver' => 'mysql', 
     'host'  => '*******', 
     'database' => '*******', 
     'username' => '*******', 
     'password' => '*******', 
     'charset' => 'utf8', 
     'collation' => 'utf8_general_ci', 
     'prefix' => '', 
    ), 
), 

Quando chiamo la convalida, si sta controllando dalla regola "unico" nel mio database di default in modo ho bisogno di cambiarlo, ma non riesco a trovare da nessuna parte come fare questo.

risposta

9

ho fatto in questo modo:

$verifier = App::make('validation.presence'); 
    $verifier->setConnection('server_auth'); 

    // validate the info, create rules for the inputs 
    $rules = User::$rules = array(
     'username'  => 'required|min:5|unique:users,username', 
     'email'   => 'required|email|unique:users,email', 
     'password'  => 'required|min:8', 
    ); 

    // run the validation rules on the inputs from the form 
    $validator = Validator::make(Input::all(), $rules); 

    $validator->setPresenceVerifier($verifier); 

soluzione per gli altri che hanno avuto questo problema.

+0

funziona anche per L5 ..... –