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

このようにしてみてください..............。

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

ビューでfieはこのようにします

foreach($post as $data)

  {

      echo $data['title'];
  }
于 2012-11-29T19:28:26.383 に答える
0

行を返すため、ループは必要ありませんforeach。ビュー コードを次のように変更してみてください。

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

変数は、コントローラーの配列の要素を定義するの$postとは異なります。$rowpostdata

于 2012-11-29T18:55:35.620 に答える