Yii框架表单模型和验证用法,yii框架表单模型
Yii框架表单模型和验证用法,yii框架表单模型
本文实例讲述了Yii框架表单模型和验证用法。分享给大家供大家参考,具体如下:
表单模型CFormModel绝大部分继承CModelCModel,由于表模型数据不需要持久化,所以主要在验证操作上。下面以框架脚手架生成的网站登录为例说明表单模型。
//模型中的验证规则 public function rules() { return array( array('username, password', 'required'), array('rememberMe', 'boolean'), array('password', 'authenticate'), ); }
$model=new LoginForm;//创建一个登录表单模型 $model->attributes=$_POST['LoginForm'];//传入登录数据 CModel->setAttributes($values,$safeOnly=true)//调用CModel的setter方法 //返回model中relues中定义的安全数据,经过下面的调用流程获取一个验证器集合 //每个验证器由CValidator::createValidator($rule[1],$this,$rule[0],array_slice($rule,2)) CModel->getValidators() ->createValidators() ->rules() CModel->validate();//遍历验证器执行验证
验证器内部实现
表单模型核心部分在验证上,下面探讨其实现方式。
YII框架中验证以独立组件集合的形式存在,CValidator是所有验证器的基类。还是以登录验证为例。rules方法中包含required、boolean、authenticate三个验证器
public static function createValidator($name,$object,$attributes,$params=array()) { if(is_string($attributes)) $attributes=preg_split('/[\s,]+/',$attributes,-1,PREG_SPLIT_NO_EMPTY); if(isset($params['on'])) { if(is_array($params['on'])) $on=$params['on']; else $on=preg_split('/[\s,]+/',$params['on'],-1,PREG_SPLIT_NO_EMPTY); } else $on=array(); if(method_exists($object,$name)) { $validator=new CInlineValidator; $validator->attributes=$attributes; $validator->method=$name; if(isset($params['clientValidate'])) { $validator->clientValidate=$params['clientValidate']; unset($params['clientValidate']); } $validator->params=$params; if(isset($params['skipOnError'])) $validator->skipOnError=$params['skipOnError']; } else { $params['attributes']=$attributes; if(isset(self::$builtInValidators[$name])) $className=Yii::import(self::$builtInValidators[$name],true); else $className=Yii::import($name,true); $validator=new $className; foreach($params as $name=>$value) $validator->$name=$value; } $validator->on=empty($on) ? array() : array_combine($on,$on); return $validator; }
创建验证器流程
1、获取属性(array $attributes)和使用场景(array $on)
2、判断验证器是否存在model中,如果存在创建一个内联验证器CInlineValidator,如果不存在,执行第3步
3、如果验证器是框架自带的导入自带验证器,否则导入外部验证器,然后实例化并赋值。
当触发validate()时候,可能产生的错误将被存储在model中,可以通过调用 CModel::getErrors() 和CModel::getError() 提取这些错误信息
PS:小编在这里推荐一款本站的php格式化美化的排版工具帮助大家在以后的PHP程序设计中进行代码排版:
php代码在线格式化美化工具:http://tools.jb51.net/code/phpformat
更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Kami biasanya menerima fail PDF daripada kerajaan atau agensi lain, sesetengahnya dengan tandatangan digital. Selepas mengesahkan tandatangan, kami melihat mesej SignatureValid dan tanda semak hijau. Sekiranya tandatangan tidak disahkan, kesahihannya tidak diketahui. Mengesahkan tandatangan adalah penting, mari lihat cara melakukannya dalam PDF. Cara Mengesahkan Tandatangan dalam PDF Mengesahkan tandatangan dalam format PDF menjadikannya lebih boleh dipercayai dan dokumen lebih cenderung untuk diterima. Anda boleh mengesahkan tandatangan dalam dokumen PDF dengan cara berikut. Buka PDF dalam Adobe Reader Klik kanan tandatangan dan pilih Show Signature Properties Klik butang Tunjukkan Sijil Penandatangan Tambah tandatangan pada senarai Sijil Dipercayai daripada tab Amanah Klik Sahkan Tandatangan untuk melengkapkan pengesahan Biarkan

1. Selepas membuka WeChat, klik ikon carian, masukkan pasukan WeChat, dan klik perkhidmatan di bawah untuk masuk. 2. Selepas memasukkan, klik pilihan alat layan diri di sudut kiri bawah. 3. Selepas mengklik, dalam pilihan di atas, klik pilihan untuk menyahsekat/merayu untuk pengesahan tambahan.

PHP8 ialah versi PHP terkini, membawa lebih banyak kemudahan dan fungsi kepada pengaturcara. Versi ini mempunyai tumpuan khusus pada keselamatan dan prestasi, dan salah satu ciri baharu yang perlu diberi perhatian ialah penambahan keupayaan pengesahan dan tandatangan. Dalam artikel ini, kita akan melihat dengan lebih dekat ciri baharu ini dan kegunaannya. Pengesahan dan tandatangan adalah konsep keselamatan yang sangat penting dalam sains komputer. Ia sering digunakan untuk memastikan bahawa data yang dihantar adalah lengkap dan sahih. Pengesahan dan tandatangan menjadi lebih penting apabila berurusan dengan transaksi dalam talian dan maklumat sensitif kerana jika seseorang dapat mengganggu data, ia berpotensi

Kod Sistem Kewangan India ialah singkatan. Cawangan bank India yang mengambil bahagian dalam sistem pemindahan dana elektronik dikenal pasti melalui kod khas 11 aksara. Reserve Bank of India menggunakan kod ini dalam transaksi internet untuk memindahkan dana antara bank. Kod IFSC terbahagi kepada dua bahagian. Bank dikenal pasti dengan empat aksara pertama, manakala cawangan dikenal pasti oleh enam aksara terakhir. NEFT (Pemindahan Dana Elektronik Nasional), RTGS (Penyelesaian Kasar Masa Nyata) dan IMPS (Perkhidmatan Pembayaran Segera) ialah beberapa transaksi elektronik yang memerlukan kod IFSC. Kaedah Beberapa cara biasa untuk mengesahkan kod IFSC menggunakan ungkapan biasa ialah: Semak sama ada panjangnya betul. Semak empat aksara pertama. Semak aksara kelima.Che

Golang ialah bahasa pengaturcaraan moden berprestasi tinggi yang sering melibatkan pemprosesan rentetan dalam pembangunan harian. Antaranya, mengesahkan sama ada input dalam huruf besar adalah keperluan biasa. Artikel ini akan memperkenalkan cara untuk mengesahkan sama ada input adalah huruf besar dalam Golang. Kaedah 1: Gunakan pakej unicode Pakej unicode dalam Golang menyediakan satu siri fungsi untuk menentukan jenis pengekodan aksara. Untuk huruf besar, julat pengekodan yang sepadan ialah 65-90 (perpuluhan), jadi kita boleh menggunakan unicod

Dalam golang, pengekodan Unicode dan jenis rune diperlukan untuk mengesahkan sama ada input ialah aksara lebar penuh. Pengekodan Unikod ialah standard pengekodan aksara yang memberikan titik kod angka yang unik kepada setiap aksara dalam set aksara, yang merangkumi aksara lebar penuh dan aksara separuh lebar. Jenis rune ialah jenis yang digunakan untuk mewakili aksara Unicode dalam golang. Langkah pertama ialah menukar input menjadi kepingan jenis rune. Ini boleh ditukar dengan menggunakan jenis []rune golang, mis.

Dengan perkembangan zaman, kami memberi lebih banyak perhatian kepada pengesahan data, terutamanya pengesahan input pengguna. Untuk pengesahan bahasa, cara menentukan dengan tepat sama ada input adalah semua aksara Cina telah menjadi isu penting. Dalam golang, kita boleh menggunakan pakej unicode dan pakej regexp untuk mencapai keperluan ini. 1. Pakej Unicode Pakej unicode menyediakan satu siri sokongan teras untuk unicode. Kita boleh menggunakan fungsi dalam pakej ini untuk menentukan dengan tepat sama ada sesuatu aksara ialah aksara Cina.

PHP adalah bahasa pengaturcaraan yang sangat popular yang biasa digunakan untuk pembangunan web. Dalam pembangunan PHP, kita sering menghadapi situasi di mana kita perlu mengesahkan rentetan. Antaranya, ungkapan biasa adalah kaedah yang sangat biasa digunakan. Apabila mengesahkan rentetan, kita selalunya perlu mengesahkan sama ada rentetan itu bermula atau berakhir dengan aksara atau rentetan tertentu. Artikel ini akan menerangkan cara menggunakan ungkapan biasa PHP untuk mengesahkan permulaan atau penghujung rentetan. Sahkan permulaan rentetan Dalam PHP, sahkan permulaan rentetan melalui ungkapan biasa Kita boleh menggunakan simbol "^" untuk mewakili
