加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – Laravel:验证在更新时是唯一的

发布时间:2020-12-14 19:50:30 所属栏目:大数据 来源:网络整理
导读:我知道这个问题已经被问过很多次了,但没有人会解释如何在模型中验证ID. 'email' = 'unique:users,email_address,10' 我的验证规则在模型中,所以如何将记录的ID传递给验证规则. 这是我的型号/用户 protected $rules_update = [ 'email_address' = 'required|e
我知道这个问题已经被问过很多次了,但没有人会解释如何在模型中验证ID.
'email' => 'unique:users,email_address,10'

我的验证规则在模型中,所以如何将记录的ID传递给验证规则.

这是我的型号/用户

protected $rules_update = [
    'email_address' => 'required|email|unique:users,'.$id,'first_name' => "required",'last_name' => "required",'password' => "required|min:6|same:password_confirm",'password_confirm' => "required:min:6|same:password",'password_current' => "required:min:6"
];

车型/ BaseModel

protected $rules = array();

public $errors;

/*
    * @data: array,Data to be validated
    * @rules: string,rule name in model 
*/

public function validate($data,$rules = "rules") {

    $validation  = Validator::make($data,$this->$rules);

    if($validation->passes()) {
        return true;
    }

    $this->errors = $validation->messages();

    return false;
}
一个简单的方案.

在你的模型

protected $rules = [
    'email_address' => 'sometimes|required|email|unique:users',..
];

在您的控制器中,操作:更新

...
$rules = User::$rules;
$rules['email_address'] = $rules['email_address'] . ',id,' . $id;
$validationCertificate  = Validator::make($input,$rules);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读