在laravel 5中更新用户信息

时间:2015-11-05 08:05:11

标签: php laravel-5

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

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');
}

请提出任何建议。

2 个答案:

答案 0 :(得分:2)

感谢您的支持, 我在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

答案 1 :(得分:0)

看看我的工作示例:

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

它应该适合你。用户更新时需要在参数中传递用户ID。当用户创建传递NULL时,或者没有,因为NULL是默认参数。