代码信息:未定义属性:stdClass [英] Codeigniter Message: Undefined property: stdClass

查看:1314
本文介绍了代码信息:未定义属性:stdClass的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在模型中使用以下查询来查询数据库:

  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获得此错误:为什么是唯一的?

 遇到PHP错误
严重性:Notice

消息:未定义属性:stdClass :: $ m_content

文件名:views / specific_message.php

行号: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);非常感谢!


h2_lin>解决方案

我认为

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

应为

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

以便

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


$ b b

参考 codeigniter



后问题更新:在你的视图中有$ query变量,因为$ data ['query']($ data将被提取),$ query是你的对象



错误的模型名称 getMessages()已被调用,应为 showSpecific )


I'm trying to query the db with the following query in the model:

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;
}

But when I try to output the result in the view:

<?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>';
                }
                ?>

Only the m_content gets this error: Why is it the only one? And how do I solve this?

A PHP Error was encountered
Severity: Notice

Message: Undefined property: stdClass::$m_content

Filename: views/specific_message.php

Line Number: 48

Here is my Controller:

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);
}

Thanks a lot!

解决方案

I think

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

should be

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

so you can

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

reference: codeigniter

After question Update : You have $query variable inside your view because of $data['query'] ($data will be extracted), $query is your object now (inside your view) so you can loop the $query.

Wrong model name getMessages() has been called, it should be showSpecific()

这篇关于代码信息:未定义属性:stdClass的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆