Yii 1.1.17 四、属性标签、AR类增删改查、使用上传类与扩展第三方类库
一、属性标签与规则设置
当进入网站页面,将会读数据库返回信息到视图上。那么,现在定义模型中的属性在视图标签上的显示,
也就是模型属性到前台标签的映射
// 定义模型属性到前台标签的映射
public function attributeLabels(){
return array(
// '表字段' => '<label>标签里面的内容'
'username' => '用户名'
);
}
这将为 username 属性生成一个 <label>用户名</label> 的提示标签。
表单验证规则:
同样,与登录时验证规则都在模型的 rules() 方法里定义
public function rules(){
return array(
array('uname', 'required', 'message' => '用户名不能为空'),
array('pwd', 'required', 'message' => '密码不能为空'),
array('pwd', 'authenticate'), // 自定义 authenticate验证规则
array('pwded', 'compare', 'compareAttribute' => 'pwd', 'message' => '两次密码不一致'),
array('captcha', 'required', 'message' => '验证码不能为空'),
array('captcha', 'captcha', 'message' => '验证码有误')
);
}
更多规则,参考 http://blog.csdn.net/zm2714/article/details/8683329
二、启用客户端验证
首先,控制器中渲染视图用$this->render('视图名');方法
然后,视图上
<?php
$form = $this->beginWidget('CActiveForm', array(
'id' = 'post-form',
'enableClientValidation' => true, //启用客户端验证
'clientOptions' => array(
'validateOnSubmit' => true, //表单提交时验证
)
));
?>
三、操作成功提示
在控制器方法中,
Yii::app()->user->setFlash('success', 'XX操作成功'); // success是标识符
在视图中,
if(Yii::app()->user->hasFlash('success')){
echo Yii::app()->user->getFlash('success');
}
四、激活调试模式
在main.php里面,取消下面被注释的部分
'log' => array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'error, warning',
), /*
array(
'class'=>'CWebLogRoute', */
),
),
五、AR类增删改查
1、只有“增”的时候,需要new模型,其他时候直接静态调用。
$model = new Model();
$model->attributes = $_POST['form'];
$model->save();
save()方法在new Model的时候是增加,在$model::model()的时候是修改
2、查记录:
单条查询:
find('username = :name', array(':name' => 'admin')); //单条查询特定username为admin的记录
findByPk(1); // 单条查询主键为1的记录
findBySql('select id, username, logintime, loginip, from {{admin}}'); //单条SQL查询
多条查询:
findAll(); findAllByPk(); findAllBySql();
3、改记录
和增记录同样操作,$model::model()->attributes = $_POST['form']->save();
4、删记录
$model::model()->deleteByPk(1); //删除主键为1的数据
更多AR类的方法参考 framework/db/ar/CActiveRecord.php 源码
六、上传类的使用
$model = new model();
$model->thumb = CUploadedFile::getInstance($model, 'thumg');
if($model->thumb){
$name = time() . mt(0, 999) .$model-thumb->extensionName(); //保存文件名
$model->thumb->saveAs('上传路径', $name);
}
七、扩展第三方类库
1、在protected/extensions中建立thumb/thumb.php;
2、在main.php中配置
'components' => array(
'thumb' => array(
'class' => 'ext.thumb.thumb'
)
),
3、在控制器方法中调用
$thumb = Yii::app()->thumb;
ext 是扩展目录 protected/extensions/
Yii 1.1.17 四、属性标签、AR类增删改查、使用上传类与扩展第三方类库的更多相关文章
- GZFramwork数据库层《四》单据主从表增删改查
同GZFramwork数据库层<三>普通主从表增删改查 不同之处在于:实例 修改为: 直接上效果: 本系列项目源码下载地址:https://github.com/GarsonZhang/G ...
- get,post,put,delete四种基础方法对应增删改查
PUT,DELETE,POST,GET四种基础方法对应增删改查 1.GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改.增加数 ...
- node.js入门学习(四)--Demo图书的增删改查
需求:图书的增删改查,图书数据保存在data.json文件中. 1.Demo结构: 2.首先下载安装node.js,配置环境变量:参考博客 3.项目初始化 1)创建项目根目录node-hello,进入 ...
- ASP.NET Core MVC 打造一个简单的图书馆管理系统 (修正版)(四)图书信息的增删改查
前言: 本系列文章主要为我之前所学知识的一次微小的实践,以我学校图书馆管理系统为雏形所作. 本系列文章主要参考资料: 微软文档:https://docs.microsoft.com/zh-cn/asp ...
- yii笔一----基础,安装,结构,增删改查基本操作
从yii中文站开始http://www.yiichina.com/ Yii 是一个高性能,基于组件的 PHP 框架 一. 1.安装yii方式 composer安装或者下载一份应用程序模板.刚开始学习, ...
- (四)JPA - JQPL 实现增删改查
(一)JPA的快速入门 建议在需要使用时,看看之前的文章,先把环境搭起来. 5.JPQL JPQL和SQL 1.JPQL和SQL很像,查询关键字都是一样的 2.唯一的区别是:JPQL是面向对象的 JP ...
- 最简单的基于JSP标准标签库的增删改查
创建数据库中的表:CREATE TABLE `websites` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(20) NOT NULL DE ...
- Yii数据库操作增删改查-[增加\查询\更新\删除 AR模式]
在Yii的开发中常常需要去使用Yii的增删改查方法,这些方法又可以多次变化和组合,带来全方位的实现对数据库的处理,下面对这些方法做一些简单的整理和梳理,有遗漏或是BUG,敬请指出.灰常感谢!!! 一. ...
- [译]聊聊C#中的泛型的使用(新手勿入) Seaching TreeVIew WPF 可编辑树Ztree的使用(包括对后台数据库的增删改查) 字段和属性的区别 C# 遍历Dictionary并修改其中的Value 学习笔记——异步 程序员常说的「哈希表」是个什么鬼?
[译]聊聊C#中的泛型的使用(新手勿入) 写在前面 今天忙里偷闲在浏览外文的时候看到一篇讲C#中泛型的使用的文章,因此加上本人的理解以及四级没过的英语水平斗胆给大伙进行了翻译,当然在翻译的过程中发 ...
随机推荐
- [计算机网络] TCP的拥塞控制
引言 计算机网络中的带宽.交换结点中的缓存和处理机等,都是网络的资源.在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏.这种情况就叫做拥塞. 拥塞控制就是防止过多 ...
- imfilter与fspecial
saliencyMap = imfilter(saliencyMap,fspecial('gaussian',round(scale/64*3),min(scale/64*3*5/4))); fspe ...
- US Open 2016 Contest
比较弱,只写了金组和银组,铂金组的第一题. [262144] http://www.usaco.org/index.php?page=viewproblem2&cpid=648 给一个序列,相 ...
- 如何提升集群资源利用率? 阿里容器调度系统Sigma 深入解析
阿里妹导读:为了保证系统的在线交易服务顺利运转,最初几年,阿里都是在双11大促来临之前大量采购机器储备计算资源,导致了双11之后资源大量闲置点现象.是否能把计算任务与在线服务进行混合部署,在现有弹性资 ...
- BZOJ4943 & 洛谷3823 & UOJ315:[NOI2017]蚯蚓排队——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4943 http://uoj.ac/problem/315 https://www.luogu.or ...
- ZOJ3874 Permutation Graph 【分治NTT】
题目链接 ZOJ3874 题意简述: 在一个序列中,两点间如果有边,当且仅当两点为逆序对 给定一个序列的联通情况,求方案数对\(786433\)取模 题解 自己弄了一个晚上终于弄出来了 首先\(yy\ ...
- 洛谷 P1338 末日的传说 解题报告
P1338 末日的传说 题目描述 只要是参加jsoi活动的同学一定都听说过Hanoi塔的传说:三根柱子上的金片每天被移动一次,当所有的金片都被移完之后,世界末日也就随之降临了. 在古老东方的幻想乡,人 ...
- linux 常见服务端口
Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程(daemons) 来执行的.守护进 ...
- Web Audio API之手把手教你用web api处理声音信号:可视化音乐demo
1.Web Audio API 介绍 Web Audio API 提供了在Web上控制音频的一个非常有效通用的系统 ,这些通用系统通俗的讲就是我们可以利用Web Audio API提供的各种方法操作各 ...
- async/await 里的并行和串行
我们在使用 async/await 语法时,有时会这样用: function getName () { return new Promise((resolve, reject)=>{ setTi ...