热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TheYiiCookbook中文索引

TheYiiCookbook中文索引

给每页增加登录框

使用?CClipWidget的高级CTabView

自动时间戳行为

创建依赖关系的下拉框

Eclipse?PDT–代码提示,应用和其他好处

启用Gzip

第一个Yii应用:CTabView

如何访问一个在模块内部访问其自身的组件

如何给记录通过行为添加名字空间

如何向Yii::app()->user添加更多的信息

如何在记录模型中自动时间戳

如何通过Yii连接Twitter

如何创建面包屑元件

如何创建/保存更多的模型输入并且使用jQuery重复它们

如何自定义验证规则的错误信息

如何自定义Yii核心消息

如何在Yii中显示静态页面

如何扩展Yii?shell?commands

如何通过下拉框筛选数据

如何生成给一个应用生成网页feed

如何隐藏index.php

如何在一个应用中实现多个页面布局

如何记录ActiveRecords的改变

如何在日志中记录内容信息(session?id,?user…)

如何使用ActiveRecord自定义表前缀

如何使用碎片缓存

如何设置FCKeditor

如何在WAMP(XP/Vista)中设置yiic

如何通过model上传文件

如何使用单独的表单向两个或以上的models收集数据

如何使用Highslide实现图天弹出效果

如何在完全WISIWYG编辑器中使用markItUp!

如何使用嵌套DB?transations

如何使用动画消息(flash?messages)

集成其他框架

在不同的模块中管理应用设置

按照前台和后台的方式组织应用程序目录

PHP编码规范(非官方)

问:我的yiic工具不能运行model和crud命令,为什么?

问:为什么有些支付不能正确显示(如何设置Unicode)

设置和管理多语言(i18n)

使用函数简名以减少输入

使用CAutoComplete来显示一个值并且提交另一个

Yii中经常要生成URL,不管是为了自动跳转还是仅仅是一个链接。下面对Yii中的URL生成做了一个总结。

提示:以下controllerX代表控制器X,actionX代表方法X。

在Controller::action中,我们要输出一个链接,可以这样做:

$this->createUrl(‘actionName’, array(‘params01′=>’value01′, ‘params02′=>’value02′) );

//Controller::createUrl($route,$params=array(),$ampersand=’&’)

第一个参数是一个字符串,值为路由名。比如action01、controller01/action01等格式。
第二个参数是一个数组,值为所有参数的key=>value对。
第三个参数是URL中每对参数之间的分隔符,一般默认为&不做修改。

假设我们在Controller01::action01中,想要生成指向action02的URL,可以这样做:

$this->createUrl(‘action02′ );

假设我们在Controller01::action01中,想要生成指向controller02::action02的URL,可以这样做:

$this->createUrl(‘action02/action02′ );

若action02是默认action,比如index,那么可省略,但最后的斜杠不可省略,即:

$this->createUrl(‘action02/’ );

斜杠放在最前面即不管代码存在于哪个module下或者哪个controller下,都从整个网站的最顶成生成URL。假设我们的代码存在于user模块的password控制器的reset方法下,下面的代码将会生成不同的URL:

$this->createUrl(‘/abc’); //生成 /abc

$this->createUrl(‘/abc/efg’); //生成 /abc/efg

$this->createUrl(‘abc’); //生成 /user/password/abc

$this->createUrl(‘abc/’); //生成 /user/abc

$this->createUrl(‘abc/efg’); //生成 /user/abc/efg

在layout中,由于$this就是所属的控制器,所以与上面相同。

使用Yii::app()->getController()->createUrl(),来生成URL与上面相同。

使用Yii::app()->createUrl(),这时候路由名就不会自动增加当前Module名和当前Controller名,其他的同上。

在redirect时,有时候我们需要进行用户的转向,比如登录成功就转向到用户信息界面,可以这样做:

$this->redirect(array(‘index’, ‘params01′=>’value01′, ‘params02′=>’value02′));

//redirect($url,$terminate=true,$statusCode=302)

redirect方法接受的第一个参数是一个数组,数组的第一个值就是路由名,剩下的就是所有的参数值。上面的转向URL相当于直接使用下面代码生成的URL:

$this->createUrl(‘index’, array(‘params01′=>’value01′, ‘params02′=>’value02′) );

可以看出,$this->createUrl第三个参数在redirect中是无法设置的。

而redirect方法的第二个参数$terminate表示是否执行时就终结代码的运行并立即转向,一般保持默认。

第三个参数$statusCode表示转向的时候给浏览器发送的状态代码,一般保持默认,具体的状态代码表示的意思可以Google一下“网页状态码”。

最底层:

上面所有的生成URL的方式都最终转到了下面的代码:

UrlManage::createUrl($route,$params,$ampersand);

它与Yii::app()->createUrl()唯一的不同点是后者将$route进行了整理:trim($route,’/’)

当你需要用到URL的时候,又一时不清楚参数的格式,最好的方式就是看看这个方法的代码,然后你就会恍然大悟。这也是学习和实践PHP时的好习惯。

转自:http://www.dlf5.com/the-yii-cookbook-%E4%B8%AD%E6%96%87%E7%B4%A2%E5%BC%95


推荐阅读
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • android ... [详细]
  • 安卓及谷歌官网不容易上,在此整理好下载地址,这样就可以直接用迅雷下载了。Eclipse最新Mars版Eclipse(暂时还没被墙)Mac版:http:www.eclipse.org ... [详细]
  • OAuth2.0指南
    引言OAuth2.0是一种应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以访问Facebook的用户数据,或者一个基于地理的应用可以访问Foursquare的用户数据等。 ... [详细]
  • 这也太简单了!轻松操作Feign 服务调用使用 Zipkin 链路追踪!
    0、介绍分布式微服务时代,方便了业务的快速增长和服务的稳定,但是系统出现问题后,面对同业务多服务排查起来令人头大。这时候领导就想着集成分布式追踪系统。Zipkin是T ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 据官方统计,截止至本周一,仅纽约市的Tumblr博文就已超过200亿条,对比六个月之前,这个数量整整多了一倍。而Tumblr ... [详细]
author-avatar
Rozenia
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有