4

私は Codeingiter を初めて使用し、シンプルなブログを作成しています。

Postテーブルには、「id、cat_id、title、content」があります...カテゴリタブレットには、「id、name」があります...

投稿を表示するには、

次の関数を使用して、モデル内の POST からコンテンツをフェッチしました...

function get_posts(){
        $query = $this->db->get('post');
        return $query->result();
}

次に、ビューファイルをロードして投稿を表示します...上記の関数はCATEGORY IDのみをフェッチしますが、カテゴリ名が必要です...したがって、ビューファイルからモデルを呼び出す必要があります...モデルを呼び出すのは非論理的だと思いますビューから...何か解決策はありますか???

私を助けてください...

ありがとうございました

4

5 に答える 5

4

このようにコントローラーで呼び出すときに、モデルを呼び出すだけです

$this->load->model('Model_name');

$this->Model_name->function(); 

または、ビューで直接呼び出したくない場合は、コントローラーを介してデータを取得できます。

$categoryID =  $this->Model_name->function();
$categoryDetails =  $this->Model_name->function($categoryID);
$data = [
    'categoryID'      => $categoryID,
    'categoryDetails' => $categoryDetails
];

その後

$this->load->view('view name',$data);
于 2012-06-15T07:24:43.907 に答える
2

これをモデルとして試してください:

function get_posts(){         
    $this->db->get('post');         
    $this->db->join('category', 'posts.category_id = category.id');
    $query = $this->db->get();
    return $query->result(); 
}

結合セクションのテーブルと列の名前が正しいかどうかを確認してください。「category」はカテゴリ テーブルの名前、posts.category_id はカテゴリ ID を参照する posts テーブルの列、category.id はカテゴリ テーブルの ID 列です。

これで、カテゴリ名にアクセスできるはずです。

于 2012-06-15T08:07:05.343 に答える
1

コントローラーからモデルを呼び出し、データをビューに渡します。

コントローラ:

$data['posts'] = $this->my_model->get_posts();
$this->load->view('my_view', $data);

意見:

foreach ($posts as $post) {
   //do something
}
于 2012-06-15T07:26:32.887 に答える