从模型中访问控制器内的数据数组

时间:2016-12-22 13:32:05

标签: php codeigniter

我想使用$data['main']并从中获取特定的行或数据:extra_id

我会将extra_id用于其他功能。

我尝试访问$data['main']中的数据,就像我在另一页的视图中所做的那样:$extra_id = $main->result()->extra_id;

不幸的是,它没有用。

控制器:

public function viewData($id)
    {   

    $this->load->model('myModel');

    $data['main'] = $this->MyModel->getMainData($id);

    $extra_id = $main->result()->extra_id; //error here. undefined variable main.

    $data['extra'] = $this->MyModel->getExtraData($extra_id);



    $this->load->view('view',$data);
}

模型:

public function getMainData($id) {
        $this->db->select('main.id as extra_id');
        $this->db->select('main.*');
        $this->db->select('extra.*');

        $this->db->from('main');

        $this->db->join('extra', 'extra.main_id = main.id');

        $query = $this->db->get();  
        return $query;
}

3 个答案:

答案 0 :(得分:1)

您初始化$data['main']然后使用$main ....它不会那样工作。试试这个:

$extra_id = $data['main']->result()->extra_id;

我的猜测是你复制了那段代码的地方,你把它分配给那个方法中名为$main的变量。

答案 1 :(得分:0)

你有没有试过这个......

在codeiginter中,result()提取对象表单上的多行,而函数row()仅用于获取对象形式的第一行。

控制器:

public function viewData($id)
    {   

    $this->load->model('myModel');

    $data['main'] = $this->MyModel->getMainData($id);

    $extra_id = $data['main']->extra_id; //error here. undefined variable main.

    $data['extra'] = $this->MyModel->getExtraData($extra_id);


    $this->load->view('view',$data);
}

型号:

public function getMainData($id) {
        $this->db->select('main.id as extra_id');
        $this->db->select('main.*');
        $this->db->select('extra.*');

        $this->db->from('main');

        $this->db->join('extra', 'extra.main_id = main.id');

        $query = $this->db->get()->row();  
        return $query;
}

答案 2 :(得分:0)

使用此代码。

$extra_id = $data['main']->result()[0]->extra_id;

并在模型中的where子句中使用$ id。

 $this->db->where("id",$id);
相关问题