更新laravel 5中的用户信息


Update user information in laravel 5

我正在做laravel项目,有一个包含字段lead_idlead_nameemail的"lead"表。在我的项目中有一个编辑信息的选项,当我试图编辑潜在客户信息时,可能会出现我不想编辑电子邮件地址的情况。我的代码是

LeadRequest.php

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

我提供的电子邮件是唯一的,所以当我试图在不更改电子邮件地址的情况下更新个人资料时,它会向我显示一条错误消息,称为"电子邮件地址已被占用"。

因此,我尝试应用laravel验证规则"强制唯一规则忽略给定ID:",如下所示,

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

但是如何提供$lead的价值。将消息显示为"未定义的变量"。我的控制器代码如下,

LeadController.php

public function update(LeadRequest $request, $id)
{
    $lead = Lead::findOrFail($id);
    $lead->update($request->all());
    return redirect('lead');
}

请提出任何建议。

感谢您的支持,我在LeadRequest.php中尝试了以下代码,这对我有效,

public function rules()
{
    return [
        'lead_name' => 'required',
        'email' =>  'required|email|unique:lead,email,NULL,id,lead_id,'.Auth::user()->id,]; }

您可以参考链接,http://laravel.io/forum/03-11-2014-validation-unique-to-user

看看我的工作示例:

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

它应该对你有用。当用户更新时,您需要在参数中传递用户id。当用户创建时,传递NULL,或者什么都不传递,因为NULL是默认参数。