Zend Framework中forward和redirect的区别

找了一圈,看到你们讲的都很差玩,不直白。我来引用Stackoverflow上某人作的一 个比喻:php

你是苦逼的开发,桌上的电话响了,接听后,那人说要找一位销售讲电话,你说:销售的直线是020-12345678,而后就给挂掉了。这就是redirect。另外一种状况,你说,你等等啊我给你转一下,而后将电话转给一位销售部门。这就是forward。网站

$this->_redirect($url);
$this->_redirect('/Read/novel/id/3');
$this->_redirect('http://www.oschina.net');
//这个redirect转了哪些参数,别人是否是一目了然?

要是你用forward,能够在Module、Controller和Action之间跳,就是不能跳到别人的网站。this

$this->_forward('action','controller','module',$param);
//转到www.ursite.com/Controller/action/$param

$this->_forward('novel','Read','default',array('id'=> $id,'mode'=> $mode));
//转到www.ursite.com/Read/novel/id/3/mode/fullverion,这个3和fullversion是变量

$this->_forward('poem','null','null',array('id'=> $id,'mode'=> $mode));
//这个forward,跳到别的网站去,若是在同一个Controller下另外一个novel动做,能够节省流量,节省计算资源

另外,forward以后,显示在地址栏里的地址不变。url

相关文章
相关标签/搜索