0

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

所以我写了这样的访问规则

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

我的疑问是当涉及到搜索操作时,有 2 个参数(POST)(我的搜索关键字)。当它转到 loginurl 并在我成功登录到相同操作后返回时 我怎样才能找回这些关键字?除了使用 session 之外,还有什么直接的 yii 方法吗?

请帮忙

4

2 回答 2

1

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

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

于 2013-09-18T06:37:52.840 回答
0

我会这样做:

  1. 设置允许访客 'users'=>array('*')
  2. 如果用户是会话中的访客商店搜索关键字,则在搜索操作中,将用户重定向到登录表单,如果不是 POST 并且在会话中存储关键字,则在返回检查方法后 - 从会话和搜索中获取搜索关键字。
于 2013-09-18T05:22:37.233 回答