1.$this->redirect这里的$this是当前的controller。可能是应用程序的也
可能是模块下的
这里仅将解一下第一个参能是url,当url是一个字符串时,它会自己动跳转
如$this->redirect('/'); 会跳转到站点根,如果你的当前主机为localhost,
那么他就会跳到http://localhost/
再者$this->redirect('/books');,则会跳到http://localhost/books
在应用程序的controller中,也可以使用$this->redirect('books');
也会跳到http://localhost/books
但是当你在module中这样使用,则会出现另一种情况,
当你打开urlManager,并设置了隐藏脚本文件,输入
如果你当前的访问地址为 http://localhost/admin/default/index 当使用$this->redirect('books'); 跳转, 跳转后地址则是 http://localhost/admin/default/books 这里只是说一下,redirect的简单跳转,我个人建议,如果不是跳到其他项目,
或外站$this->redirect('http://yiibook.com');,建议都使用下面的方法
url使用数组
当url为数组时,会调用urlManager来根据路由组织跳转的路径,这种情况比较理想,而且会根据路由
的修改而改变
如果有一条路由为
'book'=>'admin/default/index'
格式为:'路由'=>'真实地址',
即指定了访问book,就相当于方问admin模型下的default控制器的index操作方法。
既然使用了路由,主要是为了让url更友好,并隐藏真实地址 那么,当想使用$this->redirect跳转到这个路由时,需要指定真实地址,如
$this->redirect(array('admin/default/index'));
这样就会跳到这个地址了,而且url显示的确是book,而当你修路由名称时,如
'books'=>'admin/default/index',或干脆去掉这个路径,都不用修改你的程序 在模块中的情况,如果你当前在admin模块的controller中,使用跳转,则可以不用写moduleId
直接使用$this->redirect(array('default/index')); 也是ok的,这样你的module也不会
依赖于moduleId了
再有如果你当前也在admin模块下的default控制器中,也可以使用
$this->redirect(array('index'));进行跳转,不依赖于控制器的名字

我们再看一下带参数的路由
'book<id:\d+>'=>'admin/default/index'
那么,url需要为这个路径传递一个参数id,如
$this->redirect(array('admin/default/index', 'id'=>1)); url格式为array('真实路径', '参数名'=>'参数值’,'参数名2'=>'参数值2', ....);
Yii中许多组件或方法都有支持这种url的格式,如CMenu等等。 2.createUrl,有$this->createUrl和Yii::app()->createUrl,
createUrl它会根据真实地址,组织成路由格式的地址
根据上面的路由,创建url
$this->createUrl('admin/default/index')
带参数情况
$this->createUrl('admin/default/index', array('id'=>1)); admin模块中,使用
$this->createUrl('default/index');或$this->create('index');
不要使用Yii::app()->createUrl,避免依赖于具体的路由 注意一下redirect与createUrl的参数区别。

yii create url (一)的更多相关文章

  1. yii create url (二)

    在Yii中经常要生成URL,不管是为了自动跳转还是仅仅是一个链接.下面对Yii中的URL生成做了一个总结.提示:以下controllerX代表控制器X,actionX代表方法X.在Controller ...

  2. Yii的URL助手

    Url 帮助类 获得通用 URL 记住 URLs 检查相对 URLs Url 帮助类提供一系列的静态方法来帮助管理 URL. 获得通用 URL 有两种获取通用 URLS 的方法 :当前请求的 home ...

  3. yii的url写法

    Yii 各种url地址写法 echo Url::home(); 生成入口地址/yii2test/frontend/web/index.php: echo  Url::base();生成入口文件夹地址: ...

  4. Yii 各种url地址写法

    echo Url::home(); 生成入口地址/yii2test/frontend/web/index.php: echo  Url::base();生成入口文件夹地址:/yii2test/fron ...

  5. plus.webview.create( url, id, styles, extras )参数及说明

    plus.webview.create( "xxx.html", //url:String类型,可选,新窗口加载的HTML页面地址.新打开Webview窗口要加载的HTML页面地址 ...

  6. Yii 获取url 的一些方法

    原文出处http://blog.csdn.net/iefreer/article/details/21325371 1. 获取url中的host信息: Yii::app()->request-& ...

  7. Yii 框架 URL路径简化

    Yii 框架的訪问地址若不简化会让人认为非常繁琐.未简化的地址一般格式例如以下: http://localhost:80/test/index.php?r=xxx/xxx/xxx 若是带有參数会更复杂 ...

  8. YII中URL地址美化

    URL地址美化:urlManager地址管理(通过程序来实现url的地址美化) 例如: 原地址:http://localhost/项目/app/index.php?r=控制器/方法 新地址:http: ...

  9. YII 开启URL伪静态

    1.开启apache的mode_rewrite模块 去掉LoadModule rewrite_module modules/mod_rewrite.so前的“#”符号 确保<Directory ...

随机推荐

  1. 【Android】Android ObjectAnimator动画初识、模仿

    ObjectAnimator: ObjectAnimator的概念这里就不解释了,直接从代码中说明,以下是模仿Persicope的加载动画,简单的几行代码即可实现,当然我也是模仿的,更好的实现思路还请 ...

  2. ThreadLocal之我见

    一直都对ThreadLocal类感觉隔层纱似的,因为在开发中几乎是没有用到过,也大体知道他是用来保存一个线程范围内有效的变量.甚至觉着它的实现就是类似于一个map,以线程id作为key,要保存的变量作 ...

  3. 使用laravel一分钟搭建CURD后台页面

    配置即一切 一切皆于需求,后台从0开始搭建,但是写了一两个页面后发现太多的是对单表的增删改查操作,于是就想到了,能不能做一个快速搭建的后台.想到一句话,配置即一切.如果一个CURD后台能只进行配置就自 ...

  4. C#的变迁史 - C# 1.0篇

    C#与.NET平台诞生已有10数年了,在每次重大的版本升级中,微软都为这门年轻的语言添加了许多实用的特性,下面我们就来看看每个版本都有些什么.老实说,分清这些并没什么太大的实际意义,但是很多老资格的. ...

  5. csharp: Export DataTable to Excel using OpenXml 2.5 in asp.net

    //https://www.microsoft.com/en-us/download/details.aspx?id=5124 Open XML SDK 2.0 for Microsoft Offic ...

  6. Firemonkey Bitmap 设定像素颜色 Pixel

    VCL 和 Firemonkey 的 Bitmap 处理像素的方式不相同,下例为将图片内不是「白色」的像素全部改成「黑色」: procedure TForm1.Button1Click(Sender: ...

  7. Java主要知识结构

    Java基础(建议看java编程规范): Java语言基础:数据类型,命名规则,权限控制符,注释 操作符:算术操作符,逻辑操作符,关系操作符,移位操作符,按位操作符 流程控制 数组 字符串 Java高 ...

  8. ThinkCMF-smeta扩展字段

    ThinkCMF - 添加文章功能 没有上传文件功能,为了扩展这一功能,在页面加入如下代码: <tr> <td> <div style="text-align: ...

  9. (旧)子数涵数·C语言——hello world

    一说起hello world想必你们就知道我要干什么了,毕竟hello world基本是每个高级语言的第一个案例. 好,切入正题,我们开始用C语言编写hello world! 一.打开C语言的IDE( ...

  10. GJM :JS + CSS3 打造炫酷3D相册 [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...