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 实战入门的主要内容,如果未能解决你的问题,请参考以下文章

Yii 1.1.17 实战入门

Yii 1.1.17 实战入门

Yii 1.1.17 实战入门

Yii2片段缓存详解

nodejs vuejs java python 入门到高级视频

YII实战笔记