YII 小模块功能

//1,使用updateCounters()来更新计数器字段。

Book::model()->updateCounters(array('download_count'=>1),':id=id',array(':id'=>$id));



//2,使用sendFile()来下载文件。

$type = LFilter::checkString($_GET['t']);

$dataProvider = Book::model()->findByPk($id);

$content = $this->renderPartial('book',array(

'dataProvider' => $dataProvider,

'type' => $type,

),true,false);

Yii::app()->request->sendFile($dataProvider->name.'.'.$type,$content);



//3,设计数据库时候如果create_time,update_time字段为int(10).在模型中使用行为插件。

public function behaviors()

{

return array(

'CTimestampBehavior' => array(

'class' => 'zii.behaviors.CTimestampBehavior',

'createAttribute' => 'create_time',

'updateAttribute' => 'update_time',

)

); }



//4,如果有些字段使用1,2,3之类的数字存储,在程序中使用时候含义不明确。可以model中加入如下函数.

 private static $_items = array();

 public static function loadItems($type,$code=null)

{

    self::$_items = array(

        'status' => array(

            '1' => Yii::t('dh','开启'),

            '2' => Yii::t('dh','关闭'),

        ),

         'type' => array(

            '1' => Yii::t('dh','产品'),

            '2' => Yii::t('dh','文章'),

        ),

    );

    return $code ? self::$_items[$type][$code] : self::$_items[$type];

}





//5,多语言使用Yii::t()函数。

       public function attributeLabels()

{

 return array(

  'verifyCode'=>Yii::t('default','验证码'),

                       'name'=>Yii::t('default','名字'),

                       'email'=>Yii::t('default','邮箱'),

                       'subject'=>Yii::t('default','标题'),

                       'body'=>Yii::t('default','内容'),

                       'required'=>Yii::t('default','变量"{var}"没有定义',array('{var}'=>$var));

 );

}







//6,数据库表使用了前缀,则使用{{$tableName}}。

public function tableName()

{

 return '{{product}}';



//7,Cookie的使用

//设置Cookie

$cookie=new CHttpCookie($name,$value);

$cookie=time()+60*60*24;

Yii::app()->request->cookies[$name]=$cookie;

//获取Cookie

$cookie=Yii::app()->request->cookies[$name];

$value=$cookie->value;

//删除Cookie

$cookie = Yii::app()->request->getCookies();

unset($cookie[$name]);

}





//8,zii.widgets.jui.CJuiTabs的使用

<?php

        $this->widget('zii.widgets.jui.CJuiTabs', array(

            'tabs'=>array(

                Yii::t('book','基本信息') => $this->renderPartial('_basic',array(

                        'model' => $model,

                        'form' => $form,

                ),true),

                Yii::t('book','作品标签') => array('ajax'=> $this->createUrl('tag/boxList',array('tag'=>$model->tag))),

                Yii::t('book','作品封面') => $this->renderPartial('_image',array(

                        'model'=>$model,

                        'form'=>$form,

                ),true),

                Yii::t('book','作品公告') => $this->renderPartial('_notice',array(

                        'model'=>$model,

                        'form'=>$form,

                ),true),

            ),

            // additional javascript options for the tabs plugin

            'options'=>array(

                'collapsible'=>false,

            ),

        ));



  ?>



//对于tabs而言,对于复杂内容的渲染结合使用renderPartial();



//9,zii.widgets.grid.CGridView的使用



<?php $this->widget('zii.widgets.grid.CGridView', array(

 'id'=>'chapter-grid',

 'dataProvider'=>$model->search(),

 'filter'=>$model,

 'columns'=>array(

  'id',

  //锚点<a href="http://blog.163.com/huv520@126/blog/"></a>

   array(

       'name'=>'name',

              'type'=>'raw',

              'value'=>'CHtml::link($data->name,"/book/$data->id")',

         ),

                //图片

         array(

   'name'=>'image',

              'type'=>'image',

              'value'=>'LImages::getPath("book").$data->image',//图片相对路径

         ),

               //下拉列表

         array(

       'name'=>'type',

              'value'=>'Lookup::item("chapterType",$data->type)',

              'filter'=>Lookup::items('chapterType'),

         ),

               //内容截取

         array(

       'name'=>'content',

              'type'=>'html',

              'value'=>'mb_substr(htmlspecialchars_decode($data->content),0,100,"utf-8")',

         ),

               //时间

         array(

      'name'=>'create_time',

              'type'=>'datetime',

         ),

                // 根据相关信息读数据库

  array(

              'name'=>'user_id',

              'value'=>'User::model()->findbyPk($data->user_id)->username',

              'filter'=>false,

         ),

  array(

   'class'=>'CButtonColumn',

  ),

 ),

)); ?>



//10,findAll()的使用;

$params=array(

     'select'=>'id,name,image',

     'order'=>'total_point DESC',

     'limit'=>5,

 );



 $this->findAll($params);

find()使用同理,只是返回一条数据。

//11,readAll()返回数组结果集



$query = 'SELECT id,username FROM user';

$command = Yii::app()->db->createCommand($query);

return $command->query()->readAll();

 

你可能感兴趣的:(yii)