1

単一の行を返す次のクエリがあります。

モデル:

function get_guide_first(){
        $this->db
            ->select('*')
            ->from('guides_entries')
            ->order_by("guide_name", "asc")
            ->limit(1, 0)
            ->join('guides_content', 'guides_content.guide_id = guides_entries.guide_id'); 
        $query = $this->db->get();
        return $query->result_array();
    }

これが私のコントローラーです:

コントローラ:

public function get_first_guide(){
        $page_data['guide']=$this->guides_model->get_guide_first();
        $this->load->view('guidepage', $page_data);
    }

次に、ビュー (または場合によってはコントローラー) で foreach() ループを実行します。

見る:

foreach($guide as $row){
    echo $row['guide_content'];
    $activecat=$row['guide_slug'];
 }

今、私が理想的にやりたいことは、モデルから配列を返すことですが、以下を使用することもできます:

return $query->row();

配列ではなくオブジェクトを返します。

1)この行を2次元配列として返すにはどうすればよいですか? たとえば、ガイド()->col_nameではなくガイド['col_name']として結果をコントローラーにエコーできるようにします。

2)そこから $guide->col_name を使用できるように、オブジェクトをビューに渡すにはどうすればよいですか (これを $page_data 配列に渡す必要があります)

4

2 に答える 2

2

私があなたの質問を正しく読んでいる場合:あなたはrow_array代わりに使うことができますresult_array

おもう: return $query->result_array();

を返します

array(
   0 => array(
      'blah' => 'blah',
      'smile' => 'smile'
   )

);

関連付けられた配列のみを返します。

行配列は

array(
  'blah' => 'blah',
  'smile' => 'smile'    
)
于 2012-09-28T13:31:54.897 に答える
0

モデルでrow_array()を使用します。これにより、関連付けられた配列が再実行されます。

function get_guide_first(){
    $this->db
        ->select('*')
        ->from('guides_entries')
        ->order_by("guide_name", "asc")
        ->limit(1, 0)
        ->join('guides_content', 'guides_content.guide_id = guides_entries.guide_id'); 
    $query = $this->db->get();
    return $query->row_array();
}
于 2012-09-28T13:35:41.237 に答える