CakePHP—保持应用程序状态的最佳方法?

CakePHP—保持应用程序状态的最佳方法?,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我有一个应用程序,跟踪和显示当地体育联盟的各种统计数据。我的要求之一是能够按游戏类型、联赛id和位置id细分统计数据。用户为这3项中的每项选择一个值,然后使用存储在会话中的3个变量查看各种统计数据。这很好,但我的问题是用户无法链接回他们正在查看的任何统计数据。我知道我可以延长会话的生命周期,但我更愿意在URL中传递这3个变量的状态,这样我就可以通过定义这3个变量中的任何一个或任何一个来链接回任何特定的统计页面 查询字符串似乎是一种显而易见的方法,但我不知道是否有任何方法可以“自动”将查询字符串附

我有一个应用程序,跟踪和显示当地体育联盟的各种统计数据。我的要求之一是能够按游戏类型、联赛id和位置id细分统计数据。用户为这3项中的每项选择一个值,然后使用存储在会话中的3个变量查看各种统计数据。这很好,但我的问题是用户无法链接回他们正在查看的任何统计数据。我知道我可以延长会话的生命周期,但我更愿意在URL中传递这3个变量的状态,这样我就可以通过定义这3个变量中的任何一个或任何一个来链接回任何特定的统计页面

查询字符串似乎是一种显而易见的方法,但我不知道是否有任何方法可以“自动”将查询字符串附加到应用程序中生成的所有链接,或者我是否需要在生成链接或重定向的任何位置手动查看并添加查询字符串参数。这似乎是蛮力的方法,我觉得一定有更好的方法来实现我所缺少的这种坚持。感谢您的帮助

出于多种原因(链接、搜索引擎优化等),请使用URL,而不是会话/cookies。使用slug代替id:

www.mysite.com/league/football/youth/newyork

我相信有许多不同的方法可以保持url变量在所有方面的一致性,但我认为实现这一点的方法如下:

  • 您可以使用Cake的路由功能将每个项目设置为一个变量,并创建外观良好的URL
  • 在AppController的beforeFilter()中设置每个项目的会话(类型、联盟、位置)
  • 在其中,检查每个会话是否包含数据,如果包含数据,则附加到每个需要数据的链接(只能用于特定的控制器、操作等)

我希望有一种更简单的方法,但这就是我能想到的所有方法。

会话和自定义帮助程序的组合实际上听起来很理想!我从未想到过定制助手。谢谢