Zend framework Zend在控制器之间传递变量

Zend framework Zend在控制器之间传递变量,zend-framework,zend-route,zend-session,Zend Framework,Zend Route,Zend Session,我正在使用Zend Framework进行一个小型营销项目,该项目的后台目前由两个控制器组成:一个活动控制器和一个小型站点控制器。 用户使用表单创建活动,然后他必须使用链接到此活动的第二个表单创建一个迷你网站,因此在保存迷你网站的数据时,我需要获取活动和用户id 最佳实践是什么?为什么?我应该在会话对象中传递这些变量吗?或者我应该通过如下路径传递这些变量: /backoffice/minisite/create/:userid/:campaign/ 编辑:用户在创建活动时会被记录和验证我会按照

我正在使用Zend Framework进行一个小型营销项目,该项目的后台目前由两个控制器组成:一个活动控制器和一个小型站点控制器。 用户使用表单创建活动,然后他必须使用链接到此活动的第二个表单创建一个迷你网站,因此在保存迷你网站的数据时,我需要获取活动和用户id

最佳实践是什么?为什么?我应该在会话对象中传递这些变量吗?或者我应该通过如下路径传递这些变量:

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

编辑:用户在创建活动时会被记录和验证

我会按照您的建议使用路由选项。使用会话最终将很难进行测试、调试和将来的扩展等。

假设用户必须登录才能这样做,您可以将所需的用户信息存储在一个标识中


如果没有,您可以使用路由将数据存储在普通会话var中或重定向到。这两种选择都是好的,因此您可以选择最适合您和您的应用程序的选项。

我非常确定用户需要有一个帐户来完成这些操作。如果是,那么这些活动和迷你网站将以某种方式与它们关联。我会从某种形式的数据库中存储和检索这些东西

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


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

对于两个控制器之间的passinf信息,最好的方法是使用会话全局存储值。:-)

嗯,使用route选项进行扩展同样容易/困难。是的,我想一旦你再次真正理解它,它可能也同样容易/困难。我在想,当你在一年左右的时间里回来的时候,如果你可以很容易地看到正在传递的内容,因为它可以在URL中看到,那么你会更快地理解。另外,如果你想让用户创建几个活动,然后创建迷你网站,你会怎么做。或者在创建之前注销并再次登录。我认为在活动旁边有一个链接可以更容易地转到
迷你网站/创建
操作。好的一点是,使用路由似乎是一个很好的解决方案,但它需要额外的工作来检查用户正在做什么,如果他弄乱了url参数,则重定向它,就像试图编辑其他用户的活动…我指的是路线和额外的数据库数据