首页 > 解决方案 > 当两个按钮应该以相同的方法处理时,在 codeigniter 控制器中生成唯一 id 的位置

问题描述

我的要求是为每个登录会话生成唯一的代码,该代码将在整个应用程序周期中使用。但它应该只在单击打开表单的按钮后生成一次。我有一个 codeigniter 3.11 应用程序,其中我有一个带有 2 个提交按钮的表单。我正在使用 $this->input->post('buttonid') 为 2 个按钮中的每一个处理基于 buttonid 的操作。两个按钮都使用 index() 方法下的 if 条件进行处理。我只想在用户第一次使用索引方法时生成唯一 ID。通过从另一个视图页面单击“添加新”按钮打开页面时,将调用此索引函数一次。稍后在当前视图中单击 buttonid1 和 buttonid2 按钮时,将调用 index 方法并执行适当的块。由于应用程序逻辑,相同的方法会被多次调用,并且两个按钮之一需要处理该操作。因此在 if($this->input->post('buttonid')) 条件中生成代码不符合我的目的,因为它将被多次调用。所以我不确定在哪里调用唯一代码生成函数,以便它服务于我上面提到的目的。为了清楚起见,我给出了我的控制器的伪代码

function index() {
// some basic code
///-- place 1
if(user logged in ) {
if($this->input->post('buttonid1')) 
{
///-- place 2
   // do task assigned to button id 1
   //load updated view1
}
else if($this->input->post('buttonid2'))
{
///-- place 3
   // do task assigned to button id 2
   //load updated view2
}
}
else
{
  // redirect to page asking to login
}
}

在标记为位置 1,2 和 3 的位置中,我可以调用唯一 ID 生成函数。但是在任何地方它都会被多次调用,但我只想在第一次单击调用 index() 函数的按钮时调用它一次。请帮我。提前致谢

标签: phpmysqlcodeignitermodel-view-controller

解决方案


推荐阅读