2014-04-21 47 views
0

我試圖創建我的網站後端用戶界面。擁有管理員權限的用戶可以登錄管理員部分,然後編輯註冊用戶的詳細信息。滯留laravel驗證

我有一個腳本,顯示所有註冊用戶的列表。當管理員點擊特定用戶的名稱時,該用戶的詳細信息將顯示在表單中。表單的輸入包含以前存儲的值。

現在,我想要的是,如果管理員想要更改該用戶的電子郵件或用戶名,新值應該是唯一的。所以我在電子郵件和用戶名的驗證規則中添加了唯一驗證規則。現在

$rules = array(
       'name'=>'min:2', 
       'email'=>'email|unique:users', 
       'username'=>'min:5|unique:users', 
       'password'=>'min:5', 
       'cpassword'=>'required_with:password|same:password' 
      ); 

如果管理員想改變名稱,然後窗體不會進程前進,因爲這是我寫的規則給出了一個錯誤的用戶名和電子郵件應該是唯一的。

然後,我在窗體中創建了一個隱藏字段(名爲id),其中包含該特定用戶的ID。我通過回顯$id = Input::get('id')來檢查ID的值,並顯示該特定用戶的ID。

我試圖在規則中使用這個ID:

$rules = array(
       'name'=>'min:2', 
       'email'=>'email|unique:users,email,$id', 
       'username'=>'min:5|unique:users,username,$id', 
       'password'=>'min:5', 
       'cpassword'=>'required_with:password|same:password' 
      ); 

而我依然得到表單提交的錯誤,電子郵件和用戶名應該是唯一的。爲什麼當我已經提到要在檢查唯一性時忽略用戶的ID,它仍然顯示錯誤?

回答

0

對單引號變量不起作用我的意思是'$變量'不會打印可變值,而是它將解析$作爲字符串。你應該使用「$ variable」。看看這裏變量是在單引號..這是一個愚蠢的錯誤PHP編碼器做大聲笑。 編輯這一行

'username'=>'min:5|unique:users,username,$id', 

'username'=>"min:5|unique:users,username,$id", 

或本 一切都同爲電子郵件領域也

'username'=>'min:5|unique:users,username,'.$id,