2015-09-22 47 views
4

在文檔中,我看到您可以爲獨特的規則設置連接,這非常棒。然而,存在似乎並不遵循相同的邏輯。以此爲例:Laravel Validation unique/exists with different database connection

$rules = [ 
    'username'   => 'required|max:40|unique:user', 
    'name'    => 'sometimes|required', 
    'email'   => 'required|email|max:255|unique:int.user', 
    'password'   => 'sometimes|required|confirmed|min:6', 
    'password_current' => 'sometimes|required' 
]; 

唯一的規則在這種情況下起作用。它使用我的數據庫連接,名爲'int'並調用用戶表。然而,當規則被顛倒,像這樣:

$rules['email'] = 'required|email|max:255|exists:int.user'; 

我得到這個錯誤:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'int.user' doesn't exist (SQL: select count(*) as aggregate from int.user where email = [email protected])

它試圖調用的int.user表,而不是使用INT數據庫連接。

是否有一個原因存在不以同樣的方式獨特?謝謝。

+0

我不知道原因,但沒有'存在'的連接參數。根據文檔:'存在:table_name,field_name' – Iamzozo

+1

它在最新版本'L5.1.17' – Razor

回答

6

而不是使用連接名稱,您可以嘗試使用在「int」連接中定義的直接數據庫名稱。面臨類似的問題,這些方式爲我工作。像

$rules['email'] = 'required|email|max:255|exists:DB_Name.user'; 
+1

工作。所有者需要將其標記爲可接受的答案。 – gthuo

相關問題