Yii访问带参数的规则重定向

时间:2013-09-18 05:03:00

标签: yii

在我创建的Yii应用程序中,我有一个搜索功能。在此任何用户(经过身份验证和访客)都可以看到搜索框。但是当我点击搜索按钮时,只有登录用户才能看到结果。否则它将被重定向到登录屏幕。一旦他们登录,他们就可以看到结果。

所以我写了像这样的accessrule

return array(
        array('allow',
            'actions'=>array('search'),
            'users'=>array('@')
        ),

我怀疑的是,当它进入搜索操作时,有2个参数(POST)(我的搜索关键字)。当它成功登录并在我成功登录同一行动后回来如何才能获得这些关键字? 除了使用会话之外还有任何直接的yii方法吗?

请帮忙

2 个答案:

答案 0 :(得分:1)

首先,我建议您将搜索表单设为使用GET,而不是POST,当然这取决于用例和要求,但搜索表单应使用GET来制作更实用的无障碍。这也应该解决您的问题,因为Yii将在登录后返回搜索结果URL(取决于代码,可能并不总是有效)。

如果你必须使用POST,那么我能看到的唯一方法是制作一个过滤方法,将关键字保存到会话中。

答案 1 :(得分:0)

我会这样做的:

  1. 设置允许访客'用户'=>数组('*')
  2. 在搜索操作中,如果用户是会话中的访客存储搜索关键字,则将用户重定向到登录表单,并且在返回的检查方法(如果不是POST)和会话存储的关键字之后 - 从会话中获取搜索关键字并进行搜索。