2011-08-25 42 views
0

我正在使用Zend Framework开发一个小型营销项目,该项目的后台当前由两个控制器组成:一个活动控制器和一个微型控制器。 用户使用表单创建一个广告系列,然后他必须创建一个链接到此广告系列的第二个表单的小型站点,所以我需要在保存微型数据时获取广告系列和用户标识。Zend在控制器之间传递变量

什么是最佳实践,为什么?我应该在会话对象中传递这些变量吗?

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

编辑:或者我应该通过类似的路线传递这些变量用户登录并创建活动

回答

0

我很确定用户需要有一个帐户来做这些事情。如果是,那么竞选和迷你会以某种方式与他们联系在一起。我会从某种形式的数据库中存储和检索这些东西。

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

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

+0

好点,使用路由似乎是一个很好的解决方案,但它会涉及一些额外的工作来检查用户正在做什么,然后重定向它,如果他乱搞url参数,就像试图编辑其他用户的活动一样... – DoesNotCompute

+0

i意味着路线和额外数据库数据 – DoesNotCompute

0

时,我会使用路由选项,你建议认证。利用会议即将结束是非常困难的测试,调试,将来等

+0

那么,使用路由选项就很容易/很难扩展。 – markus

+0

是的,我想一旦你真的了解它可能会一样容易/困难。我一直在想,当你回来一年左右时,如果能够很容易地看到正在传递的内容,因为它可以在URL中查看,那么它会更快地再次理解。 – ChrisA

+0

另外,如果您想让用户创建多个广告系列,然后创建微型服务器,您会做什么。或者在创建之前注销并重新登录。我认为在广告系列旁边有一个链接转到“minisite/create”动作会容易得多。 – ChrisA

1

假定用户要登录做到这一点扩展,你可以存储你的Zend_Auth身份所需要的用户信息

如果不是,您可以将数据存储在与Zend_Session或使用路由重定向到的正常会话变量中。任何一个选项都是好的,所以您应该选择最适合您和您的应用程序的选项。

1

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