Rumah > rangka kerja php > ThinkPHP > teks badan

Cara menggunakan fungsi pengubahsuaian pengesahan automatik ThinkPHP

WBOY
Lepaskan: 2023-06-01 08:22:30
ke hadapan
1078 orang telah melayarinya

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'),
);
Salin selepas log masuk
  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'=>'注册成功!'));
        }
    }
}
Salin selepas log masuk

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

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!