2016-03-04 42 views
0

我對Laravel很新,我正在創建一個「更新配置文件」頁面。一切都很好,除了保存我的個人資料。由於我已經聲明電子郵件必須是唯一的 - 我會收到錯誤消息。非常有意義。我一直在閱讀this SO post關於我認爲是同樣的問題。如何使用同一電子郵件地址保存自己的個人資料?

我使用的形式請求來處理我的驗證:

public function rules() 
{ 
    return [ 
     'name' => 'required', 
     'email' => 'required|unique:users,email,' . Auth::user()->id, 
     ... 
    ] 
} 

我的控制器:

public function store(UpdateAccountRequest $request) 
{ 
    $input = $request->all(); 

    $user = new User(); 

    $user->name = $input['name']; 
    $user->email = $input['email']; 

    if ($user->save()) { 
     ... 
    } 
    ... 
} 

它看起來像我正在上的MySQL側的錯誤:

Integrity constraint violation: 1062 Duplicate entry '[email protected]' for key 'users_email_unique' 

來自CodeIgniter,過去我會有一個隱藏的字段與用戶ID或東西,並檢查如果用戶標識正在編輯他們自己的帳戶。如果是這樣,驗證會通過。我不確定最好的解決方法。

謝謝!

回答

0

SOLUTION我的一部分

愚蠢的錯誤。我正在創建一個新用戶,然後嘗試保存它。這就是爲什麼我能夠通過Laravel的驗證,而不是MySQL的獨特索引。

我需要的是這樣的:

$user = User::find(Auth::user()->id); // Get the current user. 

取而代之的是:

$user = new User(); // Create a new user 
相關問題