我有一个表,我试图存储电子邮件地址。这些电子邮件地址将以user_id
保存。
例如在email_list
表
|ID | user_id | email |
...............................
| 1 | 101 | john@gmail.com |
...............................
| 2 | 102 | john@gmail.com |
在上面的表中,你可以看到相同的电子邮件地址保存不同的user_id
,这就是我想做的。
目前我正在尝试像这样简单的laravel验证。
'email' => 'required|unique:email_list|email',
那么是否有任何方法来检查已经存在的电子邮件地址,如果行有相同的user_id
?我用的是laravel 5.2。如果有人指导我,我会很感激。谢谢你
3小时后编辑
我还在github中添加了相同的问题。有人说我必须创建自己的验证规则。
强制唯一规则忽略给定ID
第三个可选参数可以指定要忽略的ID。此外,如果表使用主键列名而不是id,则可以将其指定为可选的第四个参数
'email' => "unique:{$table},{$field},{$user->id},{$idField}"
那么在你的例子中,它会像这样
'email' => "unique:email_list,email,{$user->id},user_id'
这是违反现行规则的。
首先,根据字段是否可用的条件检查是否存在规则。
我认为,如果我们把它当作相反的,那么它对你是有用的。
交货:
'email' => 'exists:email_list,email,user_id,!102'
。
'email' => 'exists:email_list,email,user_id,!'. $user_id
,
'email' => 'exists:email_list,email,user_id,!'. Input::get(user_id)
使用Input &导入
use Illuminate'Support'Facades'Input;
并更改消息内容
请尝试这些并回复发生了什么…或者这对你来说是工作吗?