簡単なハズのCodeIgniterですが、以外に基本的なことが見つからなかったのでメモ。
データベースModelを作って使いたい人は多い、というよりも、それなしのWEBアプリを想像するほうがむつかしいのですが。。。ModelをViewへ展開するという一連の流れをメモしておく。
- DBを扱いたい場合、Controllerで、次のおまじないが必須。
 $this->load->database(); 
- モデルを呼ぶ場合は、
 $this->load->model(‘users’); なんて調子。これで、usersクラスが自動的に作られる。だから、Model, View, Controllerでクラス名はユニークであること。 
- モデルでは次の一文で最終的にSQLの結果をもらうはず。
 $query = $this->db->get(‘usertable’); 
- この$queryをモデルから返すときに、
 return $query->result_array(); とするのがCodeIgniterでは便利。(理由は後述) 
- コントローラー側では次のようにしてViewをインスタンス化する。
 $this->load->view(‘users_list’, $data); 
- この$dataの理解が大事。Viewに渡された時点で、CodeIgniterが$dataを分解し、添え字を変数化する。これで変数ひとつでいろんなデータを集約してViewに渡すのである。例えば、$data[‘title’]= “ユーザーリスト”;と定義してあれば、Viewでは$titleで”ユーザーリスト”を参照できる。
 同様に、Modelでresult_arrayでコントローラーに戻した値は、$data[‘query’] = で渡してViewで展開することになる。つまり、コントローラでは$this->load->model(‘users’); // Modelインスタンス化 
 $data[‘query’] = $this->users->list_all; // Modelのメソッドを呼び出しレコードセット(配列)を配列で受ける。
 $this->load->view(‘user_list’,$data);// $dataに集約し、Viewに渡すという流れになる。 
- Viewではテーブル作成の一連のコードが肝。
 <table> 
 <?php foreach($query as $row): ?>
 <tr>
 <td><?php echo $row[‘id’] ; ?></td>
 </tr>
 <?php endforeach; ?>
 </table>
まとめて要点だけ書いている文書を発見できなかったので、メモっておこう。






