Yii 1.1.17 实战入门
Posted mingc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii 1.1.17 实战入门相关的知识,希望对你有一定的参考价值。
属性标签与规则设置
当进入网站页面,将会读数据库返回信息到模板上。那么,现在定义模型中的属性在模板标签上的显示,
也就是模型属性到前台标签的映射
// 定义模型属性到前台标签的映射
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 实战入门的主要内容,如果未能解决你的问题,请参考以下文章