【问题标题】:Making a GET variable available in all methods使 GET 变量在所有方法中都可用
【发布时间】:2015-07-03 19:22:32
【问题描述】:

我创建了一个基于 cakephp 的应用程序。通过使用 GET (?site=x),我想让变量“site”在所有操作方法中都可用。但是,如果我使用 get 参数 ?site=x 调用任何 URL,它会在我调用任何其他 URL 时消失。通过使用缓存,我认为可以在第一次调用任何 URL 时保存 ?site=x 。当应用程序中的其他 URL 被调用时,它可以很容易地从缓存中检索并可以添加到被调用的 URL。

我想知道这是否是一种好方法,或者您认为对于这个问题还有其他更好的解决方案。

【问题讨论】:

  • 如果它总是出现在 url 中,那为什么还要费心把它放在 url 中呢?

标签: php cakephp


【解决方案1】:

我对你想要做什么感到困惑,但是如果你想定义一个将呈现给所有函数的变量,你可以通过几种方式来做到:-

1.在 App 控制器中将其定义为公共变量。它将呈现给所有其他控制器。

2.在特定控制器的beforeFilter() 函数中定义它。但是该变量将出现在该特定控制器的所有方法中。

3.或者像全局变量一样定义它,然后检查这个:- What is the best way to create global variables in CakePHP?

4.你也可以使用SESSION

【讨论】:

  • 感谢您的回答。是的,但变量的内容应该由用户更改。因此我使用 GET。如果有人调用任何 url ?site=123 ,它也应该添加到所有其他 URL。
  • 不是冲突吗?假设我是用户,我在同一系统同一浏览器上打开两个选项卡并给出不同的值,然后会发生什么?
  • 根据变量的内容执行不同的SQL语句。最后调用的 ?site=x 应该是当前变量。
  • 然后在所有控制器的beforefilter()函数中赋值给SESSION
猜你喜欢
  • 2015-09-20
  • 1970-01-01
  • 2017-11-30
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多