0

我在使用时无法将数据传递给我的视图,$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()

4

2 回答 2

0

当您返回一行时,您不需要foreach循环,请尝试将您的视图代码更改为:

<?php  
    echo $post->date;
    echo $post->title;
?>

该变量应该是$post而不是您在控制器的数组中$row定义post的元素。data

于 2012-11-29T18:55:35.620 回答
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'];
  }
于 2012-11-29T19:28:26.383 回答