【发布时间】:2014-01-10 18:34:59
【问题描述】:
我在 CodeIgniter 框架中工作,我尝试应用我在堆栈上找到的所有其他解决方案,但我无法让它工作,所以这是我的问题...... 我正在尝试根据 uri 段从名为“问题”的 MySQL 数据库表中检索记录。然后我试图在视图中显示这条记录。据我所知,uri 段被传递到它需要的任何地方,并从数据库中检索记录。 在我看来,当我试图从控制器访问数据时,问题就出现了。 我在'view_thread_view'中的循环中的每个回声都得到的错误是
遇到了 PHP 错误
严重性:通知
消息:试图获取非对象的属性
文件名:views/view_thread_view.php
任何解决方案将不胜感激。
这是我的代码:
控制器线程
function view_thread()
{
$quest = $this->uri->segment(3);
echo $quest;// for checking if uri segment is passed
if($query = $this->data_model->get_thread($quest))
{
$data['records'] = $query;
}
$this->load->view('view_thread_view', $data);
模型数据模型
public function get_thread($quest)
{
if($q = $this->db->get_where('questions' , 'qid' , $quest));
{
return $q;
}
}
查看 view_thread_view
<div title="question_view">
<h1>Question View<h1>
<?php foreach($records as $data) : ?>
<div>
<h2>Title</h2>
<?php
echo $data->title;
?>
</div>
<div>
<h2>Question</h2>
<?php
echo $data->contents
?>
</div>
<div>
<h2>Tags</h2>
<?php
echo $data->tags
?>
</div>
<div>
Thread owner
<?php
echo $records->uname
?>
</div>
<?php endforeach; ?>
</div>
编辑:问题已回答
感谢 Girish Jangid 解决了这个问题,这是工作代码:
控制器
function view_thread()
{
$quest = $this->uri->segment(3);
echo $quest;// for checking if uri segment is passed
//$data = array();
if($query = $this->data_model->get_thread($quest))
{
$data['records'] = $query;
}
$this->load->view('view_thread_view', $data);
}
型号
public function get_thread($quest)
{
if($q = $this->db->get_where('questions' , array('qid' => $quest)));
{
return $q;
}
}
查看
<div title="question_view">
<h1>Question View<h1>
<?php foreach($records->result() as $data) : ?>
<div>
<h2>Title</h2>
<?php
echo $data->title;
?>
</div>
<div>
<h2>Question</h2>
<?php
echo $data->contents
?>
</div>
<div>
<h2>Tags</h2>
<?php
echo $data->tags
?>
</div>
<div>
Thread owner
<?php
echo $data->uname
?>
</div>
<?php endforeach; ?>
</div>
</div>
【问题讨论】:
-
返回的是什么? $this->data_model->get_thread($quest)
-
现在代码正在运行,它正在从数据库中返回一条记录,其中 'qid' 与 $quest 匹配。并且 $quest 包含 uri 段(3)
标签: php codeigniter