热门标签 | 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


推荐阅读
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 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的用户数据等。 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • angular.element使用方法及总结
    2019独角兽企业重金招聘Python工程师标准在线查询:http:each.sinaapp.comangularapielement.html使用方法 ... [详细]
  • 原文:http:blog.linjunhalida.comblogpjaxgithub:https:github.comdefunktjquery-pjax ... [详细]
  • 范式转移:构建超级应用——胖应用 + 胖协议
    范式转移:构建超级应用——胖应用 + 胖协议 ... [详细]
  • 以数据驱动品牌,为出海强势护航
                    原创
    原标题:以数 ... [详细]
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社区 版权所有