【发布时间】:2017-10-25 17:13:03
【问题描述】:
我目前有一个帐户创建和登录页面。我的模型中的两个页面都有规则,对于我的注册,我的规则是这样的:
public static $rules = [
'username' => 'unique:users,username',
'group_id'=>'required',
'password' => 'required'
]
所以当用户名已经存在时,这基本上会给出一个错误。
现在我只想要用户名字段unique,当group_id 插入时,已经有相同的用户名了。
所以基本上人们可以拥有相同的用户名,如果他们没有相同的group_id
我该怎么做?如果用户名已经存在于同一个group_id 下,我似乎无法找到如何检查规则。 The laravel validation documentation 对此一无所知。
【问题讨论】:
-
也许你可以这样做:
'email' => 'unique:users,email_address,NULL,id,account_id,1'"在上面的规则中,只有 account_id 为 1 的行才会包含在唯一检查中。" -
@hebron 但这是在模型中,我想基本上只包含
Input::get('group_id')的 group_id 的行。我不能只在模型中使用它吗? -
文档确实有一章关于:Conditionally Adding Rules,但我从来没有玩过它。
-
@hebron 是的,但我似乎无法找到解决问题的方法。
-
可能是模型创建事件中的某些内容并返回自定义错误消息并返回 false(取消创建)。
标签: php validation laravel