Я работаю в рамках CodeIgniter, и я попытался применить все другие решения, которые я нашел в стеке, но я не мог заставить его работать, поэтому вот моя проблема ... Я пытаюсь получить запись из таблицы базы данных MySQL, которая называется «вопросы» на основе сегмента uri. Затем я пытаюсь отобразить эту запись в представлении. Насколько я могу судить, сегмент uri передается везде, где он должен быть, и запись извлекается из базы данных. Проблема возникает, когда я пытаюсь получить доступ к данным с контроллера, на мой взгляд. Ошибка я получаю для каждого эхо в моей петли в «view_thread_view» являетсяОшибка PHP: попытка получить свойство не-объекта
A PHP Error was encountered
Severity: Notice
Message: Trying to get property of non-object
Filename: 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);
Модель data_model
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>
EDIT: ВОПРОС ОТВЕТИЛ
Благодаря 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) – jcorry
Теперь, когда код работает, он возвращает запись из базы данных, где «qid» соответствует $ quest. И $ квест содержит Uri сегмент (3) – Tom