我目前正致力于一个codeigniter项目,而且我对自己感到困惑。为了允许Ajax调用通过API而不必每次调用project_id
,我将project_id保存在这样的会话变量中:
$this->session->set_userdata('control_panel_project_context', $project_id);
只需在通话结束时检索它。我已经使用了一段时间,然后决定尝试设置$this->project_id
等属性
在api函数中检索时也有效...但我不明白为什么。当Ajax调用通过时,它不会通过设置$this->project_id
的函数,所以控制器肯定不知道它的存在。
我能想到的唯一一件事就是它可能被设置为服务器范围。在这种情况下,当多个人对同一个函数进行类似的调用时会发生什么?是否会使用用户最后加载的项目的ID?如果它的行为与我认为的一样,那么我使用控制器属性来看它绝对不是我想要的,我应该坚持使用会话变量。
我对服务器端属性的理解对于我来自前端背景来说有点棘手,每个变量都是用户和用户的唯一变量。