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


推荐阅读
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • 本文介绍了一段使用jQuery实现的用户注册页面表单验证代码,适用于前端开发人员学习和参考。该示例结合了HTML、CSS和JavaScript,确保用户输入的数据格式正确。 ... [详细]
  • 深入分析十大PHP开发框架
    随着PHP技术的发展,各类开发框架层出不穷,成为了开发者们热议的话题。本文将详细介绍并对比十款主流的PHP开发框架,旨在帮助开发者根据自身需求选择最合适的工具。 ... [详细]
  • 本文探讨了前端包管理器的核心功能,包括注册机制、文件存储、上传下载、以及依赖分析等关键特性,并介绍了几种流行的前端包管理工具。 ... [详细]
  • 本文详细介绍了如何使用jQuery防止事件冒泡,确保子元素的点击事件不会触发父元素或祖先元素的相应事件。通过具体的代码示例和解释,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • 本文介绍了多个适用于用户界面设计的Canvas框架,帮助开发者选择最适合的工具。 ... [详细]
  • 本文深入分析了 USDC 的稳定性和可能的救援措施,探讨了在硅谷银行破产后 USDC 面临的风险以及行业内的反应。 ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • Asp.net MVC 中 Bundle 配置详解:合并与压缩 JS 和 CSS 文件
    本文深入探讨了 Asp.net MVC 中如何利用 Bundle 功能来合并和压缩 JavaScript 和 CSS 文件,提供了详细的配置步骤和示例代码,适合开发人员参考学习。 ... [详细]
  • 交互式左右滑动导航菜单设计
    本文介绍了一种使用HTML和JavaScript实现的左右可点击滑动导航菜单的方法,适用于需要展示多个链接或项目的网页布局。 ... [详细]
  • 本文深入探讨了JavaScript中实现继承的四种常见方法,包括原型链继承、构造函数继承、组合继承和寄生组合继承。对于正在学习或从事Web前端开发的技术人员来说,理解这些继承模式对于提高代码质量和维护性至关重要。 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 本文介绍了如何使用JavaScript和jQuery实现页面元素随着滚动条的移动而相应变化位置的功能,提供了一段简洁的代码示例。 ... [详细]
  • Qwik:一款创新的JavaScript框架,致力于提升网页应用的速度与响应性
    Qwik是一款新的JavaScript框架,旨在通过其独特的可恢复性机制,显著提高网页应用的加载速度和用户体验。 ... [详细]
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社区 版权所有