モデルからビューにデータを渡すことはお勧めできません。
最初にコントローラーにデータを渡し、次にビューに渡す必要があります。
http://codeigniter.com/user_guide/overview/appflow.html
このアプリケーション フロー チャートでわかるように、モデルとビューの間に直線はありません。
「レイアウト」にモデル データを表示することに関心がある場合は、フックを使用してください。
http://codeigniter.com/user_guide/general/hooks.html
「pre_controller」フックを定義し、CI インスタンスを取得し、モデルをロードし、データを取得してレイアウトに表示します。
フックを有効にする
$config['enable_hooks'] = TRUE;
次のようなフックを定義します。
$hook['pre_controller'] = array(
'class' => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => array('beer', 'wine', 'snacks')
);
例えば
針
<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Gamescount
{
private $model_name = '';
public function __construct()
{
$this->CI =& get_instance();
$this->model_name = 'Games_model';
$this->CI->load->database();
$this->CI->load->model($this->model_name);
$this->CI->load->helper('url');
}
public function count_games()
{
$all_games = $this->CI->Games_model->getAllGames();
$this->CI->gamescount = count($all_games);
}
}
?>
レイアウトでは、次のように gamescount 値を取得できます
<?php echo $this->gamescount; ?>