2015-10-05 24 views
3

我做請求通過這種方式來驗證從控制器動作請求的值:變更請求的默認數據庫5.1

namespace App\Http\Requests; 
use App\Http\Requests\Request; 
class AccountsRequest extends Request { 

    /** 
    * Determine if the user is authorized to make this request. 
    * 
    * @return bool 
    */ 
    public function authorize() { 
     return TRUE; 
    } 

    public function rules() { 
     return [ 
      'email' => 'email|required|max:255|unique:accounts', 
      'password' => 'min:6|required' 
     ]; 
    } 
} 

一切都很好,如果我使用的是默認的數據庫,但對於這個驗證我需要檢查其他數據庫中的表格。在配置我有兩個數據庫:

'connections' => [ 

    'sqlite' => [ 
     'driver' => 'sqlite', 
     'database' => database_path('database.sqlite'), 
     'prefix' => '', 
    ], 

    'mysql' => [ 
     'driver' => 'mysql', 
     'host'  => env('DB_HOST', 'localhost'), 
     'database' => env('DB_DATABASE', 'sait'), 
     'username' => env('DB_USERNAME', 'root'), 
     'password' => env('DB_PASSWORD', ''), 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => '', 
     'strict' => false, 
    ], 
    'mysql2' => [ 
     'driver' => 'mysql', 
     'host'  => env('DB_HOST', 'localhost'), 
     'database' => env('DB_DATABASE', 'account'), 
     'username' => env('DB_USERNAME', 'root'), 
     'password' => env('DB_PASSWORD', ''), 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => '', 
     'strict' => false, 
    ], 

當我打電話確認,它是由我的默認數據庫「獨一無二」的規則檢查,所以我需要去改變它,但我不能在任何地方找到如何做到這一點。

回答

5

根據你需要做的

'email' => 'email|required|max:255|unique:mysql2.accounts',

的文檔unique - Custom Database Connection 代替

'email' => 'email|required|max:255|unique:accounts',

我猜它mysql2因爲你沒有提到。

0

您是否在「獨特」規則的文檔中看到過此內容?

$verifier = App::make('validation.presence'); 

$verifier->setConnection('connectionName'); 

$validator = Validator::make($input, [ 
    'name' => 'required', 
    'password' => 'required|min:8', 
    'email' => 'required|email|unique:users', 
]); 

$validator->setPresenceVerifier($verifier); 

您可以使用setConnection()方法來指定如何確定唯一性。