Rumah >rangka kerja php >ThinkPHP >Cara menggunakan fungsi pengubahsuaian pengesahan automatik ThinkPHP

Cara menggunakan fungsi pengubahsuaian pengesahan automatik ThinkPHP

WBOY
WBOYke hadapan
2023-06-01 08:22:301106semak imbas

1 Pengenalan kepada pengesahan automatik ThinkPHP

Pengesahan automatik ThinkPHP ialah satu set mekanisme pengesahan yang dibina dalam rangka kerja, yang boleh menetapkan peraturan pengesahan dan ralat dalam model Gesa maklumat, dan lakukan pengesahan data berdasarkan senario sebenar dalam pengawal. Menggunakan pengesahan automatik boleh mengelakkan proses pengesahan manual yang membosankan dan meningkatkan kecekapan pembangunan. Dengan pengesahan automatik, kod pengendalian ralat boleh dikurangkan kerana ia secara langsung akan mengembalikan mesej ralat apabila data adalah haram.

Penggunaan asas pengesahan automatik ThinkPHP adalah seperti berikut:

  1. Tentukan peraturan pengesahan dan mesej ralat dalam model:

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. Pengesahan data dalam pengawal:

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'=>'注册成功!'));
        }
    }
}

Dalam kod di atas, kami menggunakan $user->create() untuk pengesahan data dan jika pengesahan gagal, gunakan $user->getError()Dapatkan ralat maklumat dan kembalikan ke muka hadapan. Jika pengesahan berjaya, data akan ditambah ke pangkalan data.

2. Pengubahsuaian pengesahan automatik ThinkPHP

Semasa proses pembangunan sebenar, kadangkala medan tertentu perlu dikemas kini, tetapi dalam kes ini, data juga perlu dikemas kini pengesahan. Walaupun kami boleh menggunakan mekanisme pengesahan automatik, mekanisme ini akan mengesahkan semua peraturan pengesahan sekali lagi, mengakibatkan pembaziran masa dan sumber.

Untuk menyelesaikan masalah ini, ThinkPHP menyediakan fungsi pengubahsuaian pengesahan automatik, yang hanya boleh mengesahkan medan yang perlu disahkan mengikut senario semasa. Jika anda ingin mengubah suai medan username dan email dalam pangkalan data tanpa mengesahkan password, anda boleh menggunakan kod berikut:

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'=>'更新成功!'));
        }
    }
}

Dalam kod di atas, kami lulus Parameter kedua 2 , menunjukkan bahawa adegan semasa ialah kemas kini. Dengan cara ini, dalam kaedah create(), rangka kerja hanya akan mengesahkan username dan email tetapi bukan medan lain.

Atas ialah kandungan terperinci Cara menggunakan fungsi pengubahsuaian pengesahan automatik ThinkPHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam