使用$query->row()
时,我无法将数据传递到我的视图中。在控制器中使用它时,我似乎只能获取值。
以下是模型:
public function get_post($post_id) {
$this->db->select('id, date, title');
$this->db->from('posts');
$this->db->where('id', $post_id);
$this->db->limit(1);
$query = $this->db->get();
$row = $query->row();
$row->title = html_purify($row->title);
$row->date_posted_iso = date('c', $row->date);
return $row;
}
控制器:
public function post($post_id) {
$row = $this->post_model->get_post($post_id);
$this->data['post'] = $row;
$this->data['meta_title'] = $row->title;
$this->template->build('post/show_post', $this->data);
}
观点:
<?php
foreach ($post as $row):
echo $row->date;
echo $row->title;
endforeach;
?>
控制器中的行$this->data['meta_title'] = $row->title;
正常工作,但我不想在控制器中明确定义所有这些变量。
我已尝试使用foreach而不使用Object of class stdClass could not be converted to string
如何使用$query->row()
正确回显我的视图中的值?
答案 0 :(得分:0)
当您返回一行时,您不需要foreach
循环,请尝试将您的观看代码更改为:
<?php
echo $post->date;
echo $post->title;
?>
在控制器的$post
数组中定义$row
元素时,变量应为post
而不是data
。
答案 1 :(得分:0)
尝试这样做.............
public function post($post_id)
{
$row = $this->post_model->get_post($post_id);
$model = array();
$model['post'] = $row;
$this->template->build('post/show_post', $model);
}
在视图中,你可以这样做
foreach($post as $data)
{
echo $data['title'];
}