【问题标题】:Kohana3 reference previous controller?Kohana3 参考以前的控制器?
【发布时间】:2011-03-30 20:47:54
【问题描述】:


Kohana3 中有没有办法引用以前的控制器/动作。

让我解释一下:
我有一个基本控制器,用于检查用户是否使用 Auth 模块登录到系统。
如果用户转到不允许查看的页面,他将被重定向到登录屏幕。

现在我想(当他唱歌时)返回触发登录控制器的页面。
我想将它作为 URI 段传递,但问题是控制器可以包含“/”字符。

例子:

  • 用户转到mysite.com/user/profile
  • 他被重定向到mysite.com/login(需要传递用户/个人资料
  • 成功登录后用户被重定向回mysite.com/user/profile

【问题讨论】:

  • 好主意,比弄乱 URI 要好得多。发表您的评论作为答案,以便您获得接受标记:)

标签: php model-view-controller controller kohana kohana-3


【解决方案1】:

我通过不断更新未登录用户的会话值来做到这一点。

Session::instance()->set('redirect', Request::instance()->uri());

然后,在成功登录后,您可以像这样重定向:

Request::instance()->redirect(Session::instance()->get('redirect', URL::base());

我还没有测试过代码,但概念就在那里。如果没有设置值,则继续重定向到主页。

请确保您小心并验证重定向 URL。不应该这样,但是由于我们正在处理用户数据,所以总是有一些不好的事情可能会再次出现。您最不想做的事情是在您登录后被重定向到病毒感染的网站。

【讨论】:

    猜你喜欢
    • 2012-10-07
    • 1970-01-01
    • 2014-03-18
    • 2017-01-12
    • 2019-05-26
    • 2015-03-05
    • 2012-10-12
    • 2017-05-26
    • 1970-01-01
    相关资源
    最近更新 更多