Yii使用Forms
1.创建模型
a.加入基类
use yii/base/Model
b.创建类继承自基类
c.创建所需要的变量
e.定义规则
f.注意里面用[]括起来
例如:
<span>php namespace app\models; </span><span>use</span><span> yii\base\Model; </span><span>class</span> EntryForm <span>extends</span><span> Model { </span><span>public</span> <span>$name</span><span>; </span><span>public</span> <span>$email</span><span>; </span><span>public</span> <span>function</span><span> rules() { </span><span>return</span><span> [ [[</span>'name', 'email'], 'required'],<span> [</span>'email', 'email'],<span> ]; } }</span>Salin selepas log masuk该类继承自Yii 提供的一个基类 [[yii\base\Model]],该基类通常用来表示数据
补充:[[yii\base\Model]] 被用于普通模型类的父类并与数据表无关。[[yii\db\ActiveRecord]] 通常是普通模型类的父类但与数据表有关联(译注:[[yii\db\ActiveRecord]] 类其实也是继承自 [[yii\base\Model]],增加了数据库处理)。
EntryForm
类包含name
和rules()
的方法,用来返回数据验证规则的集合。上面声明的验证规则表示:
name
和如果你有一个处理用户提交数据的
EntryForm
对象,你可以调用它的 [[yii\base\Model::validate()|validate()]] 方法触发数据验证。如果有数据验证失败,将把 [[yii\base\Model::hasErrors|hasErrors]] 属性设为 ture,想要知道具体发生什么错误就调用 [[yii\base\Model::getErrors|getErrors]]。<span>php </span><span>$model</span> = <span>new</span><span> EntryForm(); </span><span>$model</span>->name = 'Qiang'<span>; </span><span>$model</span>->email = 'bad'<span>; </span><span>if</span> (<span>$model</span>-><span>validate()) { </span><span>//</span><span> 验证成功!</span> } <span>else</span><span> { </span><span>//</span><span> 失败! // 使用 $model->getErrors() 获取错误详情</span> }Salin selepas log masuk2.创建操作
下面你得在
site
控制器中创建一个entry
操作用于新建的模型。操作的创建和使用已经在说一声你好小节中解释了。<span>php namespace app\controllers; </span><span>use</span><span> Yii; </span><span>use</span><span> yii\web\Controller; </span><span>use</span><span> app\models\EntryForm; </span><span>class</span> SiteController <span>extends</span><span> Controller { </span><span>//</span><span> ...其它代码...</span> <span>public</span> <span>function</span><span> actionEntry() { </span><span>$model</span> = <span>new</span><span> EntryForm; </span><span>if</span> (<span>$model</span>->load(Yii::<span>$app</span>->request->post()) && <span>$model</span>-><span>validate()) { </span><span>//</span><span> 验证 $model 收到的数据 // 做些有意义的事 ...</span> <span>return</span> <span>$this</span>->render('entry-confirm', ['model' => <span>$model</span><span>]); } </span><span>else</span><span> { </span><span>//</span><span> 无论是初始化显示还是数据验证错误</span> <span>return</span> <span>$this</span>->render('entry', ['model' => <span>$model</span><span>]); } } }</span>Salin selepas log masuk该操作首先创建了一个
EntryForm
对象。然后尝试从$_POST
搜集用户提交的数据,由 Yii 的 [[yii\web\Request::post()]] 方法负责搜集。如果模型被成功填充数据(也就是说用户已经提交了 HTML 表单),操作将调用 [[yii\base\Model::validate()|validate()]] 去确保用户提交的是有效数据。补充:表达式
Yii::$app
代表应用实例,它是一个全局可访问的单例。同时它也是一个服务定位器,能提供request
,response
,db
等等特定功能的组件。在上面的代码里就是使用request
组件来访问应用实例收到的$_POST
数据。用户提交表单后,操作将会渲染一个名为
entry-confirm
的视图去确认用户输入的数据。如果没填表单就提交,或数据包含错误(译者:如 email 格式不对),entry
视图将会渲染输出,连同表单一起输出的还有验证错误的详细信息。注意:在这个简单例子里我们只是呈现了有效数据的确认页面。实践中你应该考虑使用 [[yii\web\Controller::refresh()|refresh()]] 或 [[yii\web\Controller::redirect()|redirect()]] 去避免表单重复提交问题。
3.创建视图
最后创建两个视图文件
entry-confirm
和entry
。他们会被刚才创建的entry
操作渲染。
entry-confirm
视图简单地显示提交的 name 和 email 数据。视图文件保存在views/site/entry-confirm.php
。<span>php </span><span>use</span><span> yii\helpers\Html; </span>?> <p>You have entered the following information:</p>Salin selepas log masuk
- : = Html::encode($model->name) ?>
- : = Html::encode($model->email) ?>
entry
视图显示一个 HTML 表单。视图文件保存在views/site/entry.php
<span>php </span><span>use</span><span> yii\helpers\Html; </span><span>use</span><span> yii\widgets\ActiveForm; </span>?> <?php <span>$form = ActiveForm::begin(); ?> = <span>$form</span>->field(<span>$model</span>, 'name') ?> = <span>$form</span>->field(<span>$model</span>, 'email') ?> <div>class="form-group"> = Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?> </div> <?php ActiveForm::<span>end(); ?>Salin selepas log masuk视图使用了一个功能强大的小部件 [[yii\widgets\ActiveForm|ActiveForm]] 去生成 HTML 表单。其中的
begin()
和end()
分别用来渲染表单的开始和关闭标签。在这两个方法之间使用了 [[yii\widgets\ActiveForm::field()|field()]] 方法去创建输入框。第一个输入框用于 “name”,第二个输入框用于 “email”。之后使用 [[yii\helpers\Html::submitButton()]] 方法生成提交按钮。<span>use</span><span> yii\helpers\Html; </span><span>use</span> yii\wigets\ActiveForm;Salin selepas log masuk记住使用小部件,需要引入这个两个
以上就介绍了Yii使用Forms,包括了方面的内容,希望对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

Ramai pengguna akan memilih jenama Huawei apabila memilih jam tangan pintar Antaranya, Huawei GT3pro dan GT4 adalah pilihan yang sangat popular. Apakah perbezaan antara Huawei GT3pro dan GT4? 1. Rupa GT4: 46mm dan 41mm, bahan cermin kaca + badan keluli tahan karat + cangkang belakang gentian resolusi tinggi. GT3pro: 46.6mm dan 42.9mm, bahannya ialah kaca nilam + badan titanium/badan seramik + cangkerang belakang seramik 2. GT4 yang sihat: Menggunakan algoritma Huawei Truseen5.5+ terkini, hasilnya akan lebih tepat. GT3pro: Penambahan elektrokardiogram ECG dan saluran darah serta keselamatan

Perjalanan e-mel ialah: MUA: MailUserAgent - Mail User Agent. (iaitu perisian e-mel yang serupa dengan Outlook) MTA: MailTransferAgent - Ejen pemindahan mel, iaitu pembekal perkhidmatan e-mel tersebut, seperti NetEase, Sina, dsb. MDA: MailDeliveryAgent - Ejen penghantaran mel. Pelayan penghantar pembekal perkhidmatan E-mel->MUA->MTA->MTA->jika

Mengapa Alat Snipping Tidak Berfungsi pada Windows 11 Memahami punca masalah boleh membantu mencari penyelesaian yang betul. Berikut ialah sebab utama Alat Snipping mungkin tidak berfungsi dengan betul: Focus Assistant dihidupkan: Ini menghalang Snipping Tool daripada dibuka. Aplikasi rosak: Jika alat snipping ranap semasa pelancaran, ia mungkin rosak. Pemacu grafik lapuk: Pemacu yang tidak serasi mungkin mengganggu alat snipping. Gangguan daripada aplikasi lain: Aplikasi lain yang sedang berjalan mungkin bercanggah dengan Alat Snipping. Sijil telah tamat tempoh: Ralat semasa proses naik taraf boleh menyebabkan penyelesaian mudah ini sesuai untuk kebanyakan pengguna dan tidak memerlukan sebarang pengetahuan teknikal khusus. 1. Kemas kini apl Windows dan Microsoft Store

Bahagian 1: Langkah Penyelesaian Masalah Awal Menyemak Status Sistem Apple: Sebelum menyelidiki penyelesaian yang rumit, mari kita mulakan dengan asas. Masalahnya mungkin tidak terletak pada peranti anda; Lawati halaman Status Sistem Apple untuk melihat sama ada AppStore berfungsi dengan betul. Jika terdapat masalah, anda hanya boleh menunggu Apple membetulkannya. Semak sambungan Internet anda: Pastikan anda mempunyai sambungan internet yang stabil kerana isu "Tidak dapat menyambung ke AppStore" kadangkala boleh dikaitkan dengan sambungan yang lemah. Cuba tukar antara Wi-Fi dan data mudah alih atau tetapkan semula tetapan rangkaian (Umum > Tetapkan Semula > Tetapkan Semula Tetapan Rangkaian > Tetapan). Kemas kini versi iOS anda:

Selepas masalah berlaku dalam banyak bursa berpusat, semakin ramai pelabur mata wang mula memindahkan aset ke dompet sejuk untuk mengurangkan risiko yang ditimbulkan oleh pertukaran berpusat. Artikel ini akan memperkenalkan Trezor, penyedia dompet sejuk terawal di dunia Sejak dompet sejuk pertama dilancarkan pada 2014, ia telah dijual di banyak negara di seluruh dunia. Produk Trezor termasuk Model One yang dilancarkan pada 2014 dan versi lanjutan Model T yang dilancarkan pada 2018. Berikut akan terus memperkenalkan perbezaan antara kedua-dua produk ini dan dompet sejuk yang lain. Apakah dompet sejuk Trezor? Pada 2014, Trezor melancarkan dompet sejuk pertama ModelOne. Sebagai tambahan kepada BTC biasa, ETH, USDT dan mata wang lain, dompet itu juga menyokong lebih daripada 1,000 mata wang lain.

Memandangkan Internet terus berkembang, permintaan untuk pembangunan aplikasi web juga semakin tinggi. Bagi pembangun, membangunkan aplikasi memerlukan rangka kerja yang stabil, cekap dan berkuasa, yang boleh meningkatkan kecekapan pembangunan. Yii ialah rangka kerja PHP berprestasi tinggi terkemuka yang menyediakan ciri yang kaya dan prestasi yang baik. Yii3 ialah versi generasi seterusnya bagi rangka kerja Yii, yang seterusnya mengoptimumkan prestasi dan kualiti kod berdasarkan Yii2. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja Yii3 untuk membangunkan aplikasi PHP.

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Dengan perkembangan berterusan teknologi pengkomputeran awan, sandaran data telah menjadi sesuatu yang mesti dilakukan oleh setiap perusahaan. Dalam konteks ini, amat penting untuk membangunkan sistem sandaran awan yang sangat tersedia. Rangka kerja PHP Yii ialah rangka kerja berkuasa yang boleh membantu pembangun membina aplikasi web berprestasi tinggi dengan cepat. Berikut akan memperkenalkan cara menggunakan rangka kerja Yii untuk membangunkan sistem sandaran awan yang sangat tersedia. Mereka bentuk model pangkalan data Dalam rangka kerja Yii, model pangkalan data adalah bahagian yang sangat penting. Kerana sistem sandaran data memerlukan banyak jadual dan hubungan
