码迷,mamicode.com
首页 > 其他好文 > 详细

Yii 1.1.17 实战入门(四)

时间:2017-04-23 14:20:47      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:取消   调用   llb   cacti   增删改   style   model   tar   调试   

属性标签与规则设置

当进入网站页面,将会读数据库返回信息到模板上。那么,现在定义模型中的属性在模板标签上的显示,

也就是模型属性到前台标签的映射

// 定义模型属性到前台标签的映射

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 实战入门(四)

标签:取消   调用   llb   cacti   增删改   style   model   tar   调试   

原文地址:http://www.cnblogs.com/mingc/p/6752061.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!