CakePHP - 保持应用程序状态的最佳方式?

CakePHP - Best way to persist application state?

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

查询字符串似乎是一种显而易见的方法,但我不知道是否有任何方法可以 'automatically' 将查询字符串附加到应用程序中生成的所有 link ,或者如果我手动需要在生成 link 或进行重定向的任何地方添加查询字符串参数。这似乎是蛮力方法,我觉得必须有更好的方法来实现我所缺少的这种持久性。感谢您的帮助!

出于多种原因(linking、SEO 等),请使用 URL,而不是 sessions/cookies。而不是 ID,而是使用 slugs:

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

我敢肯定有很多不同的方法可以使 url 变量在整个过程中保持一致,但我可以想到的方法如下:

  • 您可以使用 Cake 的路由功能将每个项目设置为一个变量并使它们看起来漂亮 URLs
  • 在您的 AppController 的 beforeFilter() 中,设置每个项目的会话(类型、联赛、位置)
  • Make a custom MyHtmlHelper
  • 在其中,检查每个会话是否包含数据,如果包含,则附加到每个需要它的 link(只能用于特定控制器、操作等)

我希望有更简单的方法,但这就是我能想到的全部。