打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
创建模型
学习内容:
     创建一个模型代表用户通过表单输入的数据
     声明规则去验证输入的数据
     在视图中生成一个 HTML 表单
创建模型
   模型类 EntryForm 代表从用户那请求的数据, 该类如下所示并存储在 models/EntryForm.php 文件中
<?phpnamespace app\models;use Yii;use yii\base\Model;class EntryForm extends Model{ public $name; public $email; public function rules() { return [ [['name', 'email'], 'required'], ['email', 'email'], ]; }}

EntryForm 类包含 name  email 两个公共成员, 用来储存用户输入的数据。它还包含一个名为 rules() 的方法, 用来返回数据验证规则的集合。上面声明的验证规则表示:

  • name  email 值都是必须的
  • email 的值必须满足email规则验证

如果你有一个处理用户提交数据的 EntryForm 对象, 你可以调用它的 validate() 方法触发数据验证。 如果有数据验证失败,将把 hasErrors 属性设为 ture, 想要知道具体发生什么错误就调用 getErrors

<?php$model = new EntryForm();$model->name = 'Qiang';$model->email = 'bad';if ($model->validate()) {    // 验证成功!} else {    // 失败!    // 使用 $model->getErrors() 获取错误详情}

创建动作

下面你得在 site 控制器中创建一个 entry 操作用于新建的模型。 操作的创建和使用已经在说一声你好小节中解释了。

<?phpnamespace app\controllers;use Yii;use yii\web\Controller;use app\models\EntryForm;class SiteController extends Controller{    // ...现存的代码...    public function actionEntry()    {        $model = new EntryForm;        if ($model->load(Yii::$app->request->post()) && $model->validate()) {            // 验证 $model 收到的数据            // 做些有意义的事 ...            return $this->render('entry-confirm', ['model' => $model]);        } else {            // 无论是初始化显示还是数据验证错误            return $this->render('entry', ['model' => $model]);        }    }}     该操作首先创建了一个 EntryForm 对象。然后尝试从 $_POST 搜集用户提交的数据, 由 Yii 的 yii\web\Request::post() 方法负责搜集。 如果模型被成功填充数据(也就是说用户已经提交了 HTML 表单), 操作将调用 validate() 去确保用户提交的是有效数据。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Yii使用Forms
yii中数据模型的使用
Yii一些简单用法
YII学习笔记
Yii小部件(Widget)
Yii2 advanced版API接口开发 基于RESTful架构的 配置、实现、测试
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服