Codeigniter: получение переменной из модели для использования в контроллере - PullRequest
0 голосов
/ 24 марта 2010

Бьюсь об заклад, это легко, но пытался некоторое время и не могу заставить его работать. По сути, я настраиваю нумерацию страниц, и в приведенной ниже модели я хочу передать $ 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 ]

2 голосов
/ 24 марта 2010

Я думаю, что изменение вашей конфигурации во время выполнения не очень хорошая идея, но у меня есть 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. возвращает значение из функции, например:

(...)

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;

С уважением,
Pedro

0 голосов
/ 29 марта 2010

Установите $ total_rows как переменную класса в модели и получите доступ к ней из вашего контроллера, как если бы это была любая другая переменная класса

$total = $this->dbmodelname->total_rows;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...