Codeigniter Сообщение: неопределенное свойство: stdClass - PullRequest
1 голос
/ 20 марта 2012

Я пытаюсь запросить в БД следующий запрос в модели:

function showSpecific(){

    $all = $this->session->all_userdata();
    $name = $all['u_name'];

    $id = $this->db
    ->select('u_id')
    ->from('users')
    ->where('u_name', $name)
    ->get()
    ->row(); 

    $id = $id->u_id; 

    $data = $this->db->query("SELECT messages.m_id, messages.post_id, messages.m_betreff, messages.an_user, messages.von_user, messages.m_time, users.u_id, users.u_name, posts.p_titel, users.u_id, messages.m_content
                FROM messages
                INNER JOIN users 
                ON messages.von_user=users.u_id
                INNER JOIN posts
                ON messages.post_id=posts.post_id
                WHERE messages.an_user='$id'
                ORDER BY messages.m_time DESC");




    return $data;
}

Но когда я пытаюсь вывести результат в виде:

<?php foreach ($query->result() as $row)
                {
                    echo '<tr><td>';
                    echo anchor('users/showUser/'.$row->u_id, $row->u_name);
                    echo '</td><td>';
                    echo $row->m_betreff;
                    echo '</td><td>';
                    echo $row->m_content;
                    echo '</td><td>';
                    echo anchor('posts/showSpecific/'.$row->post_id, $row->p_titel);
                    echo '</td><td>';
                    echo $row->m_time;
                    echo '</td></tr>';
                }
                ?>

Только m_content получает эту ошибку: почему она единственная? И как мне это решить?

A PHP Error was encountered
Severity: Notice

Message: Undefined property: stdClass::$m_content

Filename: views/specific_message.php

Line Number: 48

Вот мой контроллер:

function showSpecific(){

    $this->load->model('messages_model');
    $data['query'] = $this->messages_model->getMessages();

    $data['main_content'] = 'specific_message';
    $this->load->view('includes/login_template', $data);
}

Большое спасибо!

1 Ответ

6 голосов
/ 20 марта 2012

Я думаю

$data['query'] = $this->db->query("...");

должно быть

$query=$this->db->query("...");

, чтобы вы могли

foreach ($query->result() as $row) {...}

ссылка: codeigniter

После обновления вопроса: В вашем представлении есть переменная $ query из-за $ data ['query'] ($ data будет извлечено), $ query теперь ваш объект (внутри вашего представления), чтобы вы могли выполнить цикл запроса $.

Неправильное имя модели getMessages () был вызван, это должно быть showSpecific ()

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