Codeigniter:从Model中检索变量以在Controller中使用

时间:2010-03-23 22:21:54

标签: php codeigniter variables

我敢打赌,这很容易,但已经尝试了一段时间,似乎无法让它发挥作用。基本上我正在设置分页,在下面的模型中我想将$ total_rows传递给我的控制器,所以我可以将它添加到配置中,如此'$ config ['total_rows'] = $ total_rows;'。

function get_timeline_filter($per_page, $offset, $source) 
    {
        $this->db->where('source', $source);
        $this->db->order_by("date", "desc");
        $q = $this->db->get('timeline', $per_page, $offset);
        $total_rows = $this->db->count_all_results();

        if($q->num_rows() >0) 
        {
            foreach ($q->result() as $row) 
            {
                $data[] = $row;                 
            }
            return $data;
        }

    }

我理解如何使用$this->example_model->example($something);将控制器中的内容传递给模型但不确定如何从模型中获取变量?

2 个答案:

答案 0 :(得分:2)

我认为在运行时更改配置并不是一个很好的想法,但我有3种方法可以在控制器中获得$ total_rows值。

ideia 1。您可以在会话中存储$ total_rows的值

ideia 2。通过引用传递变量(在函数定义中使用& $ total_rows:

function get_timeline_filter($per_page, $offset, $source, &$total_rows) 

请阅读:http://php.net/manual/en/language.references.pass.php

在你的控制器中

你打电话:

$total_rows=0;
$result=$this->model_name->get_timeline_filter($per_page, $offset, $source, &$total_rows);

ideia 3。从函数ex:

返回值

(...)

if($q->num_rows() >0) 
{
    foreach ($q->result() as $row) 
    {
        $data[] = $row;                 
    }
    return $data;
}

$final_data['total_rows']=$total_rows;
$final_data['data']=$data;

return $final_data;

的问候,
佩德罗

答案 1 :(得分:0)

将$ total_rows设置为模型中的类变量,并从控制器访问它,就像它是任何其他类变量一样

$total = $this->dbmodelname->total_rows;