0

我在徘徊在 Yii 框架中使用哪种解决方案更好,

1) 从 somethingController.php 重定向页面

$this->redirect(array($this->id."/something"));

|| 或者

2)创建网址

$this->createUrl($this->id."/something");

使用您需要的控制器和操作查看。

或者也许有更好的解决方案?

谢谢

4

2 回答 2

1

它喜欢问what is better miles or pounds?。那功能是很不一样的。

在某些情况下,您需要redirect在无需用户操作的情况下更改页面时使用,例如在控制器中:

if($money==0)
{
    $this->redirect(array('alerts/notEnoughMoney'));
}

如果您想生成将在html 链接中使用的地址,那么您需要使用createUrl,因为它会:

  • 避免不必要的重定向步骤
  • 更适合 SEO,并且对用户更友好
  • 更适合定制

您可以createUrl视图中使用,例如:

<?php
$link = $this->createUrl(array('user/profile'));
?>

<a href="<?php echo $link ?>">My Profile</a>

在任何情况下,如果您使用重定向搜索机器人可见的内容,则需要添加第二个参数:

$this->redirect(array('alerts/notEnoughMoney'),301);
----------------------------------------------^^^^

使用此参数,机器人将了解下一个页面是永久的,并将其缓存为“主”。

于 2013-04-30T06:59:50.750 回答
1
$this->createUrl($this->id."/".$this->action->id);

更好,因为它也可以与 URL 管理器一起使用并提供重写 URL。

于 2013-04-30T06:44:51.680 回答