Category Archives: Yii

CMenu的使用心得

先看代码段:

以上代码段生成以<ul><li>形式的菜单,针对当中每一项(即每一个array),能设置以下属性:

label:菜单显示的文本,纯文本,不支持html

url:链接地址,如果是array,会自动进行createUrl转换

visible:可见,boolean值,当然可以用函数来取值,决定什么情况下隐藏

active:正在访问,boolean值,如果是true,会在相应l[......]

阅读全文»

YII+DWZ,制作了DwzActiveForm,用于自动把Yii的rules与dwz已整合的validate结合

YII自带validate.js的验证,但我细读源码,发现其规则主要是提交后返回的,而DWZ整合validate.js是直接在提交时客户端验证,更为方便有效率。

model中定义的rules已经把属性的要求都写清楚,如果再为了validate又在view里手写一次,实在是麻烦,所以我有了写DwzActiveForm的想法。

1、在Yii源码中找到CActiveForm,复制出新的Widget命名DwzActiveForm放在ext.dwz中。

2、自定义一个方法addValidateAttr($model[......]

阅读全文»

使用 yii 实现 REST 风格接口

在 PHP 界有很多开发框架, yii 是其中一个比较优秀的框架。很多人都说 yii 比较复杂,先上手可以学习 ci 、 cakephp 什么的,其实我倒不这么认为, PHP 现在的框架一般整体的思路都差不多,都号称 MVC 那一套,其实关于是不是 MVC ,怎么个 MVC 法,这个话题太大,坑太深,不谈。其实,也就是说大家抽象的方式都类似,所以如果是要将 PHP 作为工具实用,而非研究,那就还是直接从牛人的肩膀上开始吧。当然,除了 yii 我另外还推荐 Laravel 框架。我个人感觉 php 的框架到[......]

阅读全文»

Yii 分页排序

'defaultOrder'=>array('title' => false), false是升序,true是倒序

1.自定义分页

使用CPagination呈现相关信息到页码. 当数据需要渲染到多页时,我们可能使用去呈现信息,诸如itemCount, pageSize, currentPage,等等. 这些信息被传递到pagers

PostController.php

[crayon-5bcb95372[......]

阅读全文»

Yii中的relations方法

以Blog示例:重点看注释

User类中的relations方法如下

Post中的方法如下 :

Comment中的ralations方法如下:

在控制器中写个方法测试一下结果:

Yii 多表关联relations

1,首先多表关联是在models/xx.php的relations里配置的。而且是互配,但有区别。

格式:

需要弄清楚的几点:

1,VarName指什么? 详见下面例2。

2,RelationType。一共有4种,分别为self::HAS_MANY, self::BELONGS_TO, self::MANY_MANY, self::HAS_ONE。

3,ClassName。即关联的另一个../model/类[......]

阅读全文»

Yii分页的写法

AR写法:

CDB写法:

为Yii Blog添加rss功能

使用了Yii的efeed扩展(地址:http://www.yiiframework.com/extension/efeed/)

把文档中的代码修改下放入view:

然后修改model,加入一个feed的namescope:

再加入controller,这个很轻:

再在urlmanager里[......]

阅读全文»

为Yii Blog加入”上一篇” “下一篇”功能

首先是扩展Post类,生成两个相应查询

话说我还不知道YII用t来代替当前表有啥缘故。

然后在相应view里加入代码:

Yii 实现MySQL多库和读写分离

前段时间为SNS产品做了架构设计,在程序框架方面做了不少相关的压力测试,最终选定了YiiFramework,至于为什么没选用公司内部的PHP框架,其实理由很充分,公司的框架虽然是"前辈"们辛苦的积累,但毕竟不够成熟,没有大型项目的历练,犹如一个涉世未深的年轻小伙。Yii作为一个颇有名气开源产品,必定有很多人在使用,意味着有一批人在维护,而且在这之前,我也使用Yii开发过大型项目,Yii的设计模式和它的易扩展特性足以堪当重任。

SNS同一般的社交产品不同的就是它最终要承受大并发和大数据量的考验,架[......]

阅读全文»