如何从同一模块重定向控制器

Posted

技术标签:

【中文标题】如何从同一模块重定向控制器【英文标题】:How to redirect controller from same module 【发布时间】:2013-11-01 07:30:56 【问题描述】:

我有一个模块是 OfficeModule。在 OfficeModule 我有两个 控制器 BranchController 和 BranchTypeController。和两个模型 分支模型和分支类型模型。还有两个视图文件。文件路径 是这样的:

protected\modules\office\controllers\branchController.php

protected\modules\office\controllers\branchtypeController.php

protected\modules\office\models\Branch.php

protected\modules\office\models\BranchType.php

我有一个模块文件:protected\modules\office\OfficeModule.php

当我从 url 调用时 projectname.test.com/office/branch 我想这样重定向: 项目名称.test.com/office/branchtype。现在我在写redirect() OfficeModule.php 内

public function beforeControllerAction($controller, $action)
  $controller->redirect(array('../branchtype'));

但它不起作用并且无法重定向。任何人请帮助我。非常感谢!

【问题讨论】:

【参考方案1】:

没关系:)

public function beforeControllerAction($controller, $action)

  $getcontroller = Yii::app()->controller->id;
  if($getcontroller == 'branch')
    $controller->redirect(array('/office/branchtype'));
  

【讨论】:

【参考方案2】:

试试:

$controller->redirect(array('branchtype/index'));

它重定向到模块的控制器branchtype 和操作index。还有

$controller->redirect(array('/branchtype/index'));

重定向到应用控制器branchtype 和操作index(在模块外)

【讨论】:

以上是关于如何从同一模块重定向控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用命名 URL 映射从控制器重定向?

从 MVC 4 控制器重定向到 .aspx 页面

Cakephp 内部从控制器重定向到另一个控制器

服务器重定向和客户端重定向

从基本控制器重定向到操作方法

Javascript发布请求回调,从.NET MVC控制器重定向