Zend在控制器之间传递变量

时间:2011-08-25 08:15:51

标签: zend-framework zend-route zend-session

我正在使用Zend Framework开展一个小型营销项目,该项目的后台目前由两个控制器组成:一个活动控制器和一个minisite控制器。 用户使用表单创建广告系列,然后他必须创建一个带有与此广告系列相关联的第二个表单的minisite,因此我需要在保存minisite的数据时获取广告系列和用户ID。

最佳做法是什么?为什么?我应该在会话对象中传递这些变量吗?或者我应该通过以下路线传递这些变量:

/backoffice/minisite/create/:userid/:campaign/

编辑:创建广告系列时会记录和验证用户

4 个答案:

答案 0 :(得分:1)

假设用户必须登录才能执行此操作,您可以以Zend_Auth身份

存储所需的用户信息

如果没有,您可以将数据存储在Zend_Session的正常会话变量中,或者重定向到路径。任何一种选择都是好的,所以你可以选择最适合你和你的应用的选项。

答案 1 :(得分:1)

要在两个控制器之间传递信息,最好的方法是使用session来全局存储值。 : - )

答案 2 :(得分:0)

我会按照你的建议使用路线选项。使用会话最终将很难进行测试,调试,扩展等等。

答案 3 :(得分:0)

我很确定用户需要有一个帐户来执行这些操作。如果是,那么广告系列和迷你网将以某种方式与它们相关联。我会从某种形式的数据库中存储和检索这些东西。

如果您没有经过身份验证的用户,并且您真的只需要将两个变量传递给另一个操作,请使用url参数,但要注意用户可能会弄​​乱它们并且可能发生许多意外情况。存储在会话中更难以这种方式进行操作。

因此,如果不涉及身份验证且网站是公共的,请使用会话,否则不要使用存储。