как вернуть данные из модели в контроллер и контроллер для представлений в codeigniter - PullRequest
0 голосов
/ 26 марта 2012

Я использую codeigniter.у меня есть таблица для отображения в файле представления.поэтому у меня есть модель, где я запускаю запрос, чтобы получить данные из таблицы.

function my_active_requests()
    {
        $user_id =  $this->session->userdata('user_id');
        $this->db->select('id,request_date,required_by_date');
            $this->db->where('requested_by',$user_id);
            return $this->db->get('requests');
            ///also tried with 
            //$query = $this->db->get('requests');
        ///$number_of_rows = $query->num_rows;
            //return $query;
            //return $number_of_rows;
            //but no result
     }

это функция модели.

это мой контроллер

function my_active_req()
        {

            $this->bloodline_model->my_active_requests();
                    //also tried without this// 
                    $query = $this->db->get('requests');
                    //and this//
            $number_of_rows = $query->num_rows;
            $this->load->view('my_active_req');
        }   

и это мое мнение

<?php foreach ($query->result() as $row) { ?>
        <tr>
            <td><?php echo $row->id; ?></td>
            <td><?php echo $row->request_date; ?></td>
            <td><?php echo $row->required_by_date; } ?></td>
        </tr>
    </table>

но ошибка неопределенной переменной $ query.я думаю, я не могу вернуть запрос $ и другие данные из моей модели на контроллер и контроллер на мой взгляд.Пожалуйста, предоставьте мне решение.`

Ответы [ 2 ]

0 голосов
/ 27 марта 2012

Модель

function my_active_requests()
{
    $user_id =  $this->session->userdata('user_id');
    $this->db->select('id,request_date,required_by_date');
    $this->db->where('requested_by',$user_id);
    $query = $this->db->get('requests');
    if($query->num_rows) {
       return $this->db->result();
    }
      return false; 
 }

Контроллер

function my_active_req()
{

    $results = $this->bloodline_model->my_active_requests();
    $this->load->view('my_active_req', array('user_data' => $results));
 }       

View

 <?php 
   if($user_data) {
      foreach ($user_data as $row) { ?>
    <tr>
        <td><?php echo $row->id; ?></td>
        <td><?php echo $row->request_date; ?></td>
        <td><?php echo $row->required_by_date; } ?></td>
    </tr>
</table>
0 голосов
/ 26 марта 2012

Измените эту строку:

<?php
$this->load->view('my_active_req', array(
    'query' => $query
));

Второй параметр функции загрузчика view() позволяет передавать переменные в представление.

Однако вы в значительной степени обходите цельразделения MVC.Вы хотите, чтобы контроллер «запрашивал» информацию из модели (а не только непосредственно из базы данных; в противном случае, какой смысл модели?), А затем «передавал» ее в представление.Контроллер знает, что должен функционировать вид.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...