2015-11-05 117 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是默认参数。