Php Trans_状态代码点火器

Php Trans_状态代码点火器,php,codeigniter,Php,Codeigniter,你好 我在模型中有trans_start-trans_complete public function insert_user($name, $desc) { $this->db->trans_start(TRUE); $this->db->set('Name', $name); $this->db->set('Desc', $desc); $this->db->insert('user'); $id = $this->db->inse

你好

我在模型中有trans_start-trans_complete

public function insert_user($name, $desc)
{
$this->db->trans_start(TRUE);
$this->db->set('Name', $name);
$this->db->set('Desc', $desc);
$this->db->insert('user');
$id = $this->db->insert_id();
$this->db->trans_complete();
return $id;
我想知道如果
trans_status===TRUE
是否可能,那么它将转到另一个类似这样的模型:

if ($this->db->trans_status() === TRUE)
    {
        insert_access($get);
    }
这就是模型:

public function insert_access($get)
    {
        $data = $this->input->post('pTableData');
        $tableData = json_decode($data,TRUE);
        foreach ($tableData as $get)
        {
            $this->db->set('UserID', $id);
            $this->db->set('AccessName', $get['accessName']);
            $this->db->set('Password', $get['password']);
            $this->db->insert('access');
            $id_access = $this->db->insert_id();

            return $id_access ;
        }
    }

并在
函数insert\u user($name,$desc)
中获取
return$id
,这样我就可以在集合
中的
函数insert\u access($get)
中使用它

这应该像你说的那样起作用:

$id = $this->db->insert_id();
if ($this->db->trans_status() === TRUE)
{
    $this->insert_access($id);                //if in the same model
    $this->another_model->insert_access($id); //if some other model
}
但是,我在您的函数中看到,
insert\u access($get)
,您已经使用,
$data=$this->input->post('pTableData'),顺便说一句,这是不可能的,因为您直接从另一个模型函数调用此函数。

要使其正常工作,您可以将
post数据
insert\u用户
功能发送到
insert\u访问
功能。

谢谢!我只需要弄清楚post dat的情况!:)我只有一个问题。即使我的trans_start-trans_complete在模型中,是否允许将trans_状态置于控制器中?更好的是,从模型if true返回if到控制器或返回0,检查控制器中的返回值,并使用
post数据和返回的
id
调用
插入访问