
Yii 开发教程
文章平均质量分 80
PHP Yii Framework 开发简明教程
引路蜂
这个作者很懒,什么都没留下…
展开
-
Yii Framework 开发教程: 总结
到目前为止,基本介绍了开发Yii 应用的基本知识,其它更进一步的如扩展Yii框架,调用第三方库(如Zend库),错误处理,安全,性能调试可以参考Yii文档(建议参考英文版,中文版翻译得有点怪怪的,很像机器翻译的),以后有时间在写进阶开发指南。为方便起见,给出所有开发指南链接如下:Yii Framework 开发教程(1) 第一个应用Hello WorldYii Framework 开发教程(2)原创 2013-01-10 08:30:03 · 6923 阅读 · 3 评论 -
Yii Framework 开发教程(48) 多国语言示例
本例通过Yii Framework 开发教程(11) UI 组件 ActiveForm示例添加中文支持简要说明一下多国语言支持。详细文档可可以参考Yii文档。信息翻译是通过调用 Yii::t() 实现的。此方法会将信息从 源语言 翻译为 目标语言。总体来说,要实现信息翻译,需要执行如下几步:在合适的位置调用 Yii::t() ;以 protected/messages/LocaleID/Categ原创 2013-01-10 08:28:40 · 4119 阅读 · 0 评论 -
Yii Framework 开发教程(47) 主题 Theme 示例
Theming是一个在Web应用程序里定制网页外观的系统方式。通过采用一个新的主题,可以非常方便的改变应用的外观。在Yii,每个主题由一个目录代表,包含view文件,layout文件和相关的资源文件,如图片, CSS文件, JavaScript文件等。主题的名字就是他的目录名字。全部主题都放在在同一目录WebRoot/themes下 。在任何时候,只有一个主题可以被激活。提示:默认的主题根目录We原创 2013-01-09 08:07:44 · 4928 阅读 · 2 评论 -
Yii Framework 开发教程(46) Zii组件-Sortable示例
CJuiSortable显示一个列表,列表中的列表项可以通过拖放重新调整顺序,它封装了 JUI Sortable插件。其基本用法如下:<?phpYii::app()->clientScript->registerCss('sortable', "#sortable {list-style-type: none; margin: 0; padding: 0; width: 60%;}#sort原创 2013-01-08 08:23:46 · 2862 阅读 · 0 评论 -
Yii Framework 开发教程(45) Zii组件-Selectable示例
CJuiSelectable可以显示一个列表,列表的每个项支持Select事件,它封装了 JUI Selectable插件,其基本用法如下:<?phpYii::app()->clientScript->registerCss('selectable',"#selectable {list-style-type: none; margin: 0; padding: 0; width: 60%;}原创 2013-01-07 08:22:53 · 2876 阅读 · 0 评论 -
Yii Framework 开发教程(44) Zii组件-Resizable示例
CJuiResizable可以使包含在其中的UI组件支持缩放功能,它封装了 JUI Resizable插件,CJuiResizable基本使用方法如下:beginWidget('zii.widgets.jui.CJuiResizable', array( 'options'=>array( 'minWidth'=>50, 'minHeight'=>50, 'maxWidt原创 2013-01-06 10:40:31 · 2596 阅读 · 0 评论 -
Yii Framework 开发教程(43) Zii组件-Droppable示例
上篇介绍如果使用UI组件支持拖放,CJuiDroppable表示某个区域可以接受拖拉过来的UI组件,它封装了 JUI Droppable插件。我们修改上例,添加一个Droppable区域,当有UI组件拖放到该区域时,显示“Dropped”。beginWidget('zii.widgets.jui.CJuiDroppable', array( 'options'=>array( 'drop原创 2013-01-05 10:24:15 · 2701 阅读 · 0 评论 -
Yii Framework 开发教程(42) Zii组件-Draggable示例
CJuiDraggable可以使包含着其中的其它UI组件实现拖放功能,它封装了 JUI Draggable插件。要使某个UI组件可以拖放,下面为使用CJuiDraggable的基本用法:beginWidget('zii.widgets.jui.CJuiDraggable', array( 'options'=>array( 'cursor'=>'move', ), 'ht原创 2013-01-05 10:22:13 · 2742 阅读 · 0 评论 -
Yii Framework 开发教程(41) Zii组件-Tabs示例
CJuiTabs 显示分页UI组件,和Yii Framework 开发教程(17) UI 组件 TabView示例功能类似,它封装了 JUI tabs插件。前基本用法如下:widget('zii.widgets.jui.CJuiTabs', array('tabs'=>array( 'Static tab'=>'Static content', 'Render tab'=>$this->re原创 2013-01-04 08:46:00 · 3523 阅读 · 0 评论 -
Yii Framework 开发教程(40) Zii组件-SliderInput示例
CJuiSliderInput 显示一滑动条,它也封装了 JUI slider插件,可以用在Form中作为用户输入UI组件。基本用法如下:beginWidget('CActiveForm'); ?> errorSummary($model); ?> widget('zii.widgets.jui.CJuiSliderInput', array( 'model'=>$model,原创 2013-01-03 08:16:55 · 3116 阅读 · 0 评论 -
Yii Framework 开发教程(39) Zii组件-Slider示例
CJuiSlider显示一滑动条,可以通过滑动条来缩放图像或用作其它功能,它封装了 JUI slider插件。本例通过CJuiSlider来缩放一副图像:widget('zii.widgets.jui.CJuiSlider', array( 'value'=>50, 'options'=>array( 'min'=>1, 'max'=>100, 'slide'=>'js原创 2013-01-03 08:15:28 · 3066 阅读 · 0 评论 -
Yii Framework 开发教程(38) Zii组件-ProgressBar示例
CJuiProgressBar显示一进度条。它封装了 JUI Progressbar插件。CJuiProgressBar显示一进度条。它封装了 JUI Progressbar插件。widget('zii.widgets.jui.CJuiProgressBar', array( 'id'=>'progress', 'value'=>0, 'htmlOptions'=>array( 's原创 2013-01-02 08:41:16 · 3446 阅读 · 0 评论 -
Yii Framework 开发教程(37) Zii组件-Dialog示例
CJuiDialog用来显示对话框,模式或非模式对话框。它封装了 JUI Dialog插件。其基本用法如下<?php$this->beginWidget('zii.widgets.jui.CJuiDialog', array( 'id'=>'mydialog', 'options'=>array( 'title'=>'Dialog', 'width'=>500,原创 2013-01-02 08:38:46 · 3749 阅读 · 0 评论 -
Yii Framework 开发教程(36) Zii组件-DatePicker示例
CJuiDatePicker 用于日期输入,它封装了 JUI datepicker插件,其基本用法如下:errorSummary($model); ?> <?php $this->widget('zii.widgets.jui.CJuiDatePicker', array( 'name'=>'my_date', 'language'=>'en', 'options'=>array原创 2013-01-01 09:30:34 · 4248 阅读 · 0 评论 -
Yii Framework 开发教程(35) Zii组件-Button示例
CJuiButton 显示按钮,CJuiButton 既可以做为Submit(提交)按钮,也可以做为普通按钮。按钮基本用法如下:widget('zii.widgets.jui.CJuiButton', array('buttonType'=>'submit','name'=>'btnSubmit','value'=>'1','caption'=>'Submit','htmlOptions原创 2013-01-01 09:28:44 · 3221 阅读 · 0 评论 -
Yii Framework 开发教程(34) Zii组件-AutoComplete示例
CJuiAutoComplete 在用户输入时可以根据用户输入的前几个字符自动提示用户可以输入的文字。它封装了 JUI autocomplete插件。基本用法如下<?php$this->widget('zii.widgets.jui.CJuiAutoComplete', array( 'name'=>'city', 'source'=>$data, // additional javasc原创 2013-01-01 09:26:40 · 3548 阅读 · 0 评论 -
Yii Framework 开发教程(33) Zii组件-Accordion示例
Zii组件中包含了一些基于JQuery的UI组件,这些UI组件定义在包zii.widgets.jui中,包括CJuiAccordion ,CJuiAutoComplete,CJuiDatePicker等。本篇介绍CJuiAccordion,显示一个Accordion组件(类似手风琴可以折叠的UI组件)。这个控件封装了 JUI Accordion插件。基本用法如下:<?php$this->widg原创 2012-12-31 09:26:26 · 2882 阅读 · 0 评论 -
Yii Framework 开发教程(32) Zii组件-GridView示例
CGridView 以表格的形式显示数据,CGridView 也支持分页和排序,CGridView最基本的用法和ListView类型,也是通过设置 data provider,通常是CActiveDataProvider。修改上个例子Yii Framework 开发教程(31) Zii组件-DetailView 示例,把ListView该为GridView:widget('zii.widgets.原创 2012-12-31 09:23:46 · 3585 阅读 · 0 评论 -
Yii Framework 开发教程(31) Zii组件-DetailView 示例
CDetailView为某个Model显示详细内容。这个要显示的Model可以为CModel或是关联数组。CDetailView通过配置 attributes来决定Model的那些属性需要显示已经以何种格式显示。每个属性可以使用Name:Type:Label来配置。其中Type和Label都是可选的。“Name” 属性名称.“Label” 可以选,属性的标签名,如果没有配置,则使用属性名称做为标签原创 2012-12-30 08:58:25 · 3913 阅读 · 0 评论 -
Yii Framework 开发教程(29) Zii组件-Menu 示例
介绍完Yii数据库接口外,从本篇开始介绍Zii组件,包括列表视图ListView,表格视图GridView,此外还包括一些基于JQuery的UI组件,如AutoComplete,DataPicker, Button, Drag 和 Drop等。本文介绍Menu菜单用法,CMenu使用Html 列表显示多级菜单,Menu配置通过其属性item来配置,每个菜单项包括三个主要属性visible 是否可原创 2012-12-29 14:49:40 · 3489 阅读 · 0 评论 -
Yii Framework 开发教程(28) Data Provider 简介
这开始介绍Zii组件之前,先简要介绍一下Yii支持的数据源接口 IDataProvider,IDataProvider主要功能是为UI组件如GridView,ListView等提供数据源,同时也支持数据的分页和排序。下图为Yii内置的三种数据源:CActiveDataProvider 基于Active Record的数据源CArraryDataProvider 基于数组的数据源CSqlDataP原创 2012-12-29 08:17:48 · 8035 阅读 · 0 评论 -
Yii Framework 开发教程(27) 数据库-关联Active Record示例
我们已经了解了怎样使用 Active Record (AR) 从单个数据表中获取数据。 在本节中,我们讲解怎样使用 AR 连接多个相关数据表并取回关联(join)后的数据集。为了使用关系型 AR,我们建议在需要关联的表中定义主键-外键约束。这些约束可以帮助保证相关数据的一致性和完整性。本例通过修改Yii Framework 开发教程(25) 数据库-Query Builder示例来介绍多个有关系的原创 2012-12-28 23:19:39 · 3240 阅读 · 0 评论 -
Yii Framework 开发教程(26) 数据库-Active Record示例
使用Java或是.Net 写数据库应用,很多人都用过Hibernate(或NHibernate)可以大大简化数据库编程,而以对象的方式来读写数据库(ORM),Yii提供的Active Record (AR) 也是一个流行的 对象-关系映射 (ORM) 技术。每个 AR 类代表一个数据表(或视图),数据表(或视图)的列在 AR 类中体现为类的属性,一个 AR 实例则表示表中的一行。 常见的 CRUD原创 2012-12-28 23:12:05 · 2962 阅读 · 0 评论 -
Yii Framework 开发教程(25) 数据库-Query Builder示例
上一篇介绍PHP使用DAO(数据库访问对象接口)访问数据库的方法,使用DAO需要程序员编写SQL语句,对于一些复杂的SQL语句,Yii提供了Query Builder来帮助程序员生成SQL语句,Query Builder提供了一中面向对象的方法动态创建SQL语句,打个不十分恰当的比较,PHP 的DAO和.Net 的DAO接口非常类型,Query builder 就有点像LINQ了,尽管和LINQ比原创 2012-12-27 19:45:16 · 2857 阅读 · 0 评论 -
Yii Framework 开发教程(24) 数据库-DAO 示例
数据访问对象(DAO) 对访问存储在不同数据库管理系统(DBMS)中的数据提供了一个通用的API。 因此,在将底层 DBMS 更换为另一个时,无需修改使用了 DAO 访问数据的代码。Yii DAO 基于 PHP Data Objects (PDO) 构建。它是一个为众多流行的DBMS提供统一数据访问的扩展,这些 DBMS 包括 MySQL, PostgreSQL 等等。因此,要使用 Yii DAO原创 2012-12-27 12:48:44 · 3434 阅读 · 0 评论 -
Yii Framework 开发教程(23) 数据库-概述
Yii提供了强大的数据库编程支持。Yii数据访问对象(DAO)建立在PHP的数据对象(PDO)extension上,使得在一个单一的统一的接口可以访问不同的数据库管理系统(DBMS)。使用Yii的DAO开发的应用程序可以很容易地切换使用不同的数据库管理系统,而不需要修改数据访问代码。Yii 的Active Record( AR ),实现了被广泛采用的对象关系映射(ORM)办法,进一步简化数据库编程原创 2012-12-27 10:42:00 · 3149 阅读 · 0 评论 -
Yii Framework 开发教程(22) UI 组件 Zii组件简介
前面介绍了Yii框架支持的部分UI组件,除了前面介绍的UI组件外,Yii框架还提供了Zii组件库,包括列表视图ListView,表格视图GridView,此外还包括一些基于JQuery的UI组件,如AutoComplete,DataPicker, Button, Drag 和 Drop等,Zii组件主要定义在包zii.* ,zii.widget.* 由于其中部分UI组件和数据源(Data Prov原创 2012-12-26 19:15:08 · 3753 阅读 · 0 评论 -
Yii Framework 开发教程(21) UI 组件 自定义Captcha示例
Yii内置的Captcha基本上可以满足大部分需求,如果你对验证码有特殊要求,你可以自定义Captcha,这主要是通过扩展CCaptchaAction来实现的,本例自定义一个验证码功能,随机产生10以内的加减法,用户需要计算出正确的结果才能通过验证。本例基于上例Yii Framework 开发教程(20) UI 组件 Captcha示例,做如下修改首先在protected/components 目原创 2012-12-26 18:43:08 · 3372 阅读 · 1 评论 -
Yii Framework 开发教程(20) UI 组件 Captcha示例
Captcha(全自动区分计算机和人类的图灵测试-Completely Automated Public Turing test to tell Computers and Humans Apart,简称CAPTCHA)俗称验证码,是一种区分用户是计算机和人的公共全自动程序。在CAPTCHA测试中,作为服务器的计算机会自动生成一个问题由用户来解答。这个问题可以由计算机生成并评判,但是必须只有人类才原创 2012-12-26 17:46:25 · 3643 阅读 · 0 评论 -
Yii Framework 开发教程(19) UI 组件 TreeView示例
CTreeView用来显示具有层次结构的数据,使用TreeView 通过设置Data属性。Data为具有下面结构的数组:ext: string, 树节点的文本.expanded: boolean,可选,表示该节点是否展开.id: string, 可选,该节点ID.hasChildren: boolean, 可选,缺省为False,当为True表示该节点含有子节点.children: array,可原创 2012-12-25 22:36:02 · 3646 阅读 · 0 评论 -
Yii Framework 开发教程(18) UI 组件 TextHighlighter示例
CTextHighlighter用来格式化显示代码,目前支持显示的语言有ABAP, CPP, CSS, DIFF, DTD, HTML, JAVA, JAVASCRIPT, MYSQL, PERL, PHP, PYTHON, RUBY, SQL, XML,显示代码时也可以显示行号,通过showLineNumbers=TRUE打开行号显示。本例显示PHP代码,一个带行号,一个不带行号:PHP cod原创 2012-12-25 20:56:37 · 2837 阅读 · 0 评论 -
Yii Framework 开发教程(17) UI 组件 TabView示例
CTabView 用来显示分页标签,使用TabView的基本方法是配置tabs属性,每个Tab可以配置如下属性title:标签标题.content: 标签显示内容.view: 标签显示View的名称,如果同时制定Content,则显示Content内容。url: 点击该标签时页面重定向到指定URL.data: 当指定View属性时传给该View的属性数组.本例显示三个标签页,分别使用不同的标签内容原创 2012-12-25 20:17:53 · 3423 阅读 · 0 评论 -
Yii Framework 开发教程(16) UI 组件 StarRating示例
CStarRating 主要用于评分,显示一组星星(5 个)用于打分。基本用法如下beginWidget('CActiveForm'); ?> widget('CStarRating',array( 'model'=>$model, 'attribute'=>'rating', 'name'=>'rating', 'value'=>3,原创 2012-12-25 19:51:31 · 3055 阅读 · 0 评论 -
Yii Framework 开发教程(15) UI 组件 MultiFileUpload示例
CMultiFileUpload 用于上传文件,支持一次同时上传多个文件。这个UI组件是基于jQuery Multi File Upload 插件。Yii 内置的很多UI组件都是基于JQuery,因此需要创建assets 目录用于存放动态生成的javascripts 等。所上传的文件的信息可以通过$_FILES[widget-name]来访问,比如,CMultiFileUpload的name为”f原创 2012-12-25 18:16:44 · 4421 阅读 · 0 评论 -
Yii Framework 开发教程(14) UI 组件 MaskedTextField示例
CMaskedTextField为格式输入框,可以为文本框指定Mask限制用户可以出入的文本格式,如本例使用99.99.9999 ,可以只允许输入类似日期的文本。修改View,添加CMaskedTextField 组件widget('CMaskedTextField',array( 'model'=>$model, 'attribute'=>'date', 'name原创 2012-12-23 20:56:46 · 2991 阅读 · 0 评论 -
Yii Framework 开发教程(13) UI 组件 ContentDecorator示例
和Java Swing中类似Yii Framework 中的Layout 也允许嵌套,这是通过CContentDecorator来实现的,不过代码中并不需要直接使用CContentDecorator ,而是在定义layout使用$this->beginContent('path/to/view');// ... content to be decorated$this->endContent(原创 2012-12-23 17:35:00 · 2974 阅读 · 0 评论 -
Yii Framework 开发教程(12) UI 组件 ClipWidget示例
CClipWidget提供了类似录制“宏”的功能,定义在CClipWidget的init和run之间的内容可以存放在Controller的Clip变量中,然后重新回放到任意其它位置。CClipWidget封装的是CBaseController的beginClip和 endClip,CBaseController的beginClip和 endClip的基本用法如下:首先定义Clip$this->be原创 2012-12-23 16:37:04 · 3671 阅读 · 0 评论 -
Yii Framework 开发教程(11) UI 组件 ActiveForm示例
前面在介绍Yii Framework 开发教程(7) 使用CHtml 创建Form和Yii Framework 开发教程(8) 使用FormModel 已经对CActiveForm做了简要的介绍。过几天就是圣诞节了,这里帮助圣诞老人做个调查表,调查每个人希望得到的圣诞节礼物和圣诞大餐想吃的食品:-)。这里共享一部分代码,做为后续例子的框架,基本上是复制Hello World的例子,添加了一个空的D原创 2012-12-23 15:54:08 · 3292 阅读 · 0 评论 -
Yii Framework 开发教程(10) UI 组件 自定义组件
在介绍Yii内置UI组件之前,先介绍一下如何自定义组件,这样也有助于理解CWidget的用法,自定义组件就是重载 CWidget的init() 和 run() 方法。class MyWidget extends CWidget{ public function init() { // 此方法会被 CController::beginWidget() 调用原创 2012-12-22 21:41:55 · 3367 阅读 · 0 评论 -
Yii Framework 开发教程(9) UI 小组件Widget 概述
和通常的应用程序开发框架一样,Yii Framework也提供了一组UI小组件(CWidget)来帮助程序员设计用户界面,小组是 CWidget 或其子类的实例.它是一个主要用于表现数据的组件.小组通常内嵌于一个视图来产生一些复杂而独立的用户界面.例如,一个日历小物件可用于渲染一个复杂的日历界面.小组件使用户界面更加可复用.我们可以按如下视图脚本来使用一个小物件:beginWidget('path原创 2012-12-22 15:40:00 · 4121 阅读 · 0 评论