我已经使用默认值单独测试了每种方法,这一切似乎都有效。当它们都混合在一起时,会发生一些事情。
这是代码,我会尽力以易于理解的方式编写它:
从控制器开始:
if ($active['newcliq'])
{
$newcliqid = $this->create_m->create_keyword($cliq, $cliqid);
if (!$newcliqid) {
echo json_encode(array('success' => false));
} else {
$this->logic_m->change_active($newcliqid, $cliq);
}
}
$active['newcliq']
是真还是假,从userdata('active')
当然,它运行的下一件事create_keyword($cliq, $cliqid)
如下所示:
$this->db->insert('cliq', $insert);
$newcliqid = $this->db->insert_id();
if ($newcliqid) {
return $newcliqid;
} else {
return false;
}
同样,我已经手动检查了所有内容,并且我知道$newcliqid
返回的是正确insert_id
的,并且整个函数都返回了正确的值。
所以$newcliqid
返回到控制器并运行logic_m->change_active
如下所示:
if (!$this->logic_m->cliqidcheck($cliqid)){
$cliqid = 6;
}
上面这行给我带来了问题。不管是什么值,$cliqid
总是设置为 6。cliqidcheck 返回 true 还是 false。
这是cliqidcheck($cliqid)
public function cliqidcheck($cliqid)
{
if ((ctype_digit($cliqid)) AND ($this->checkcliqidexist($cliqid)))
{
return true;
} else {
return false;
}
}
我已经用手动输入的值测试了 cliqidcheck,它总是返回正确的值。此外,我已经从模型中完全删除了 cliqidcheck change_active
,它工作得很好。
我还在$newcliqid
控制器中回显了变量并找到了正确的值。
我希望这只是一个我忽略的简单问题。谢谢您的帮助!如果需要更多信息,请告诉我。