我正在尝试验证更新用户个人资料表单,验证应检查电子邮件是否已存在,但忽略用户现有电子邮件是否仍然存在。
但是,这会继续返回验证错误消息“此电子邮件已被占用”。
我真的不确定我哪里错了。否则,更新表单可以正常工作并更新。
HTML
{{ Form::text('email', Input::old('email', $user->email), array('id' => 'email', 'placeholder' => 'email', 'class' => 'form-control')) }}
Route
Route::post('users/edit/{user}', array('before' => 'admin', 'uses' => 'UserController@update'));
用户模型
'email' => 'unique:users,email,{{{ $id }}}'
您的规则编写正确,以便忽略特定 id,但是,您需要更新{{{ $id }}}
在尝试验证之前在您的独特规则中。
我不一定是这种方法的忠实粉丝,但假设您的规则是User
对象,您可以创建一个静态方法,该方法将水合并返回具有正确值的规则。
class User extends Eloquent {
public static $rules = array(
'email' => 'unique:users,email,%1$s'
);
public static function getRules($id = 'NULL') {
$rules = self::$rules;
$rules['email'] = sprintf($rules['email'], $id);
return $rules;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)