Yii2如何更改被调用的动作,或将动作内部重定向到另一个动作

时间:2015-05-27 11:56:44

标签: php redirect yii routing yii2

我希望在控制器内部和函数init(){}内部更改被调用的操作(请求的操作)。 我的意思是如果有人打电话给“www.mywebsite.com/myctrl/action1”我希望在init函数中调用action2而不重定向页面并更改URL。

2-是否可以在init函数内做出响应,并停止调用请求的操作?

最诚挚的问候 瓦埃勒

2 个答案:

答案 0 :(得分:0)

为什么不抓住配置文件中的URL并手动将其重定向到新操作?它应该工作得很好,它可以完全达到你想要的效果。

http://www.yiiframework.com/doc-2.0/guide-runtime-url-handling.html

我知道这不是你想做的方式,但有什么好处。

修改

在你告诉我你需要做什么之后,你真的不应该这样做。您应该使用AccessControl http://www.yiiframework.com/doc-2.0/yii-filters-accesscontrol.html或控制器的beforeAction http://www.yiiframework.com/doc-2.0/yii-base-controller.html#beforeAction()-detail

使用第二个选项,你可以抛出一个错误,让Yii为你处理它。第一个做同样的事情......

答案 1 :(得分:0)

这个问题通常通过使用Apache的mod_rewrite或类似问题来解决。根本不需要更改您的应用程序。它比yii2提供的灵活得多,而且速度更快,因为Web服务器本身就是这样做的。

该技术通常用于迁移功能,支持不同环境,共享资源等。