2015-11-05 121 views
3

我正在做laravel項目,並且存在包含字段lead_id,lead_name,email的'前導'表。在我的項目中有編輯信息選項。當我試圖編輯潛在客戶信息時,可能會出現我不想編輯電子郵件地址的情況。我的代碼,更新laravel 5中的用戶信息

LeadRequest.php

public function rules() 
{ 
    return [ 
     'lead_name' => 'required', 
     'email' => 'required|email|unique:lead', 
    ]; } 

我提供電子郵件作爲一種獨特的,所以當我試圖在不改變的電子郵件地址更新個人資料,那麼就說明我的錯誤消息「電子郵件地址已經採取'。

於是,我就套用laravel驗證規則「強制獨特規則忽略給定ID:」如下,

'email' => 'unique:lead,email_address,'.$lead.'lead_id', 

但如何提供$鉛值。將消息顯示爲'未定義變量'。 我的控制器代碼如下,

LeadController.php

public function update(LeadRequest $request, $id) 
{ 

    $lead = Lead::findOrFail($id); 
    $lead->update($request->all()); 
    return redirect('lead'); 
} 

請給出任何建議。

+0

你能不能傳遞值作爲「規則」功能的參數? – Amarnasan

+1

發佈您的控制器更新方法的代碼 –

+0

我已更新提供控制器更新方法的代碼 – Amarja

回答

0

看看我的工作例如:

public function rulesUserEdit($id = NULL) 
{ 
    return [ 
     'name' => 'required|min:3', 
     'oib' => 'required|min:11|max:11|unique:users' . ($id ? ",oib,$id" : ''), 
    ]; 
} 

它應該爲你工作。用戶更新時需要在參數中傳遞用戶標識。當用戶創建傳遞NULL時,或者什麼也不是,因爲NULL是默認參數。