关于Yii中的url的跳转,有两个方法,第一个是Redirect,第二个是Forward
Yii的Rediret
使用方法
1 | $this->redirect(array('index')); |
对应的是当前controller的index action
http://www.localyii.com/testwebap/index.php?r=user/index
1 | $this->redirect(array('view','id'=>$model->id)); |
对应的是当前controller的view action并传递id参数值为3
http://www.localyii.com/testwebap/index.php?r=user/view&id=3
1 | $this->redirect(array('/site/contact','id'=>12)); |
http://www.localyii.com/testwebap/index.php?r=site/contact&id=12
1 | $this->redirect(array('site/contact','id'=>'idv','name'=>'namev')); |
http://www.localyii.com/testwebap/index.php?r=site/contact&id=idv&name=namev
1 | $this->redirect(array('site/contact','v1','v2','v3')); |
http://www.localyii.com/testwebap/index.php?r=site/contact&0=v1&1=v2&2=v3
1 | $this->redirect(array('site/contact','v1','v2','v3','#'=>'ttt')); |
带anchor的
http://www.localyii.com/testwebap/index.php?r=site/contact&0=v1&1=v2&2=v3#ttt
1 | $this->redirect(array('user/create','v1','v2','v3','#'=>'ttt')); |
http://www.localyii.com/testwebap/index.php?r=user/create&0=v1&1=v2&2=v3#ttt
modules的redirect
1 | $this->redirect(array('testmod/default/index','v1','v2','v3','#'=>'ttt')); |
http://www.localyii.com/testwebap/index.php?r=testmod/default/index&0=v1&1=v2&2=v3#ttt
跳转到一个绝对路径
1 | $this->redirect('http://www.baidu.com'); |
函数的原型是
1 | public function redirect($url,$terminate=true,$statusCode=302) |
Yii的forward
1 | $this->forward('/testmod/default/index'); |
地址栏url
http://www.localyii.com/testwebap/index.php
forward是不需要参数的
函数的原型是:
1 | public function forward($route,$exit=true) |
forward和redirect的区别显而易见
1,浏览器url地址
2,是否支持绝对地址
3,是否传递参数