>PHP 프레임워크 >ThinkPHP >ThinkPHP 자동 검증 수정 기능 사용법

ThinkPHP 자동 검증 수정 기능 사용법

WBOY
WBOY앞으로
2023-06-01 08:22:301107검색

1. ThinkPHP 자동 검증 소개

ThinkPHP 자동 검증은 프레임워크에 내장된 일련의 검증 메커니즘으로 모델에 검증 규칙과 오류 프롬프트를 설정하고 이를 실제 시나리오와 결합하여 데이터 검증을 수행할 수 있습니다. 컨트롤러에서. 자동 검증을 사용하면 지루한 수동 검증 프로세스를 피하고 개발 효율성을 높일 수 있습니다. 자동 유효성 검사를 사용하면 데이터가 불법일 때 오류 메시지를 직접 반환하므로 오류 처리 코드를 줄일 수 있습니다.

ThinkPHP 자동 유효성 검사의 기본 사용법은 다음과 같습니다.

  1. 모델의 유효성 검사 규칙 및 오류 메시지 정의:

protected $_validate = array(
    // 验证用户名是否合法
    array('username','require','用户名不能为空!'),
    array('username','','该用户名已被注册',0,'unique'),
    array('username','/^[\w\-\x{4e00}-\x{9fa5}]{2,16}$/','用户名不合法!',0,'regex'),
    // 验证邮箱是否合法
    array('email','require','电子邮箱不能为空!'),
    array('email','','该邮箱已被注册',0,'unique'),
    array('email','email','电子邮箱格式不正确!',0,'regex'),
    // 验证密码是否合法
    array('password','require','密码不能为空!'),
    array('password','/^[\S]{6,32}$/','密码格式不正确!',0,'regex'),
);
  1. 컨트롤러에서 데이터 유효성 검사 수행:

public function register(){
    if(IS_POST){
        $user = D('User');
        if(!$user->create()){
            $this->ajaxReturn(array('status'=>0,'msg'=>$user->getError()));
        }else{
            $user->add();
            $this->ajaxReturn(array('status'=>1,'msg'=>'注册成功!'));
        }
    }
}

위 코드에서 , 데이터 확인을 위해 $user->create()를 사용합니다. 확인에 실패하면 $user->getError()를 사용하여 오류 정보를 얻고 반환합니다. 프런트엔드 페이지로 이동합니다. 유효성 검사에 성공하면 데이터가 데이터베이스에 추가됩니다. $user->create()进行数据验证,如果验证失败,则使用$user->getError()获取错误信息,并返回给前端页面。如果验证成功,则将数据添加到数据库中。

二、ThinkPHP自动验证修改

在实际开发过程中,有时候需要对某些字段进行更新,但是在这种情况下也需要进行数据验证。虽然我们可以使用自动验证机制,但是该机制会再次验证所有的验证规则,导致时间和资源的浪费。

为了解决这个问题,ThinkPHP提供了自动验证的修改功能,它可以根据当前场景,只对需要验证的字段进行验证。假如您要修改数据库中的usernameemail字段,而并不需要对password进行验证,则可以使用如下代码:

public function update(){
    if(IS_POST){
        $user = D('User');
        $data = array(
            'id' => $_POST['id'],
            'username' => $_POST['username'],
            'email' => $_POST['email'],
        );
        if(!$user->create($data, 2)){
            $this->ajaxReturn(array('status'=>0,'msg'=>$user->getError()));
        }else{
            $user->save();
            $this->ajaxReturn(array('status'=>1,'msg'=>'更新成功!'));
        }
    }
}

在上述代码中,我们传递了第二个参数2,表示当前为更新场景。这样,在create()方法中,框架只会对usernameemail

🎜2. ThinkPHP 자동 검증 수정🎜🎜🎜실제 개발 과정에서 특정 필드를 업데이트해야 하는 경우도 있는데, 이 경우 데이터 검증도 필요합니다. 자동 검증 메커니즘을 사용할 수 있지만 이 메커니즘은 모든 검증 규칙을 다시 검증하므로 시간과 자원이 낭비됩니다. 🎜🎜이 문제를 해결하기 위해 ThinkPHP에서는 현재 시나리오에 따라 검증이 필요한 필드만 검증할 수 있는 자동 검증 수정 기능을 제공합니다. 비밀번호를 확인하지 않고 데이터베이스의 사용자 이름이메일 필드를 수정하려면 다음 코드를 사용할 수 있습니다. 🎜rrreee 🎜In the 위 코드에서는 두 번째 매개변수 2를 전달하여 현재 장면이 업데이트되었음을 ​​나타냅니다. 이러한 방식으로 create() 메서드에서 프레임워크는 usernameemail만 확인하고 다른 필드는 확인하지 않습니다. 🎜

위 내용은 ThinkPHP 자동 검증 수정 기능 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제