我正在做laravel项目,并且有“领导”项目。包含字段lead_id
,lead_name
,email
的表格。我的项目中有一个编辑信息选项,当我尝试编辑潜在客户信息时,可能会出现我不想编辑电子邮件地址的情况。我的代码是,
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');
}
请提出任何建议。
答案 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是默认参数。