2016-12-06 3 views
0

CodeIgniterでシンプルなToDoリストを作成しています。CodeIgniterはビュー内に2つのコントローラー関数をロードします

ユーザーの詳細と彼がチェックしたすべてのアイテムを表示するプロファイルページがあります。

これは、これは私のコントローラ

public function index(){ 
    $this->load->model('model_users'); 
    $query = $this->model_users->getUserInfo(); 
    $data['users'] = null; 
    if($query){ 
     $data['users'] = $query; 
    } 
    $this->load->view('profile/profile', $data); 
} 

そして、私のモデル

いる今、あなたは私からユーザー情報を選択することを確認することができ、これまで

<div class="profile_header"> 
     <?php foreach ($users as $user) { ?> 
     <h4><?php echo $user['name']; ?></h4> 

</div> 

私の見解でありますユーザーテーブルを作成し、インデックスコントローラ機能を使用してビューに送信します。ここでtaskslist_taskテーブルから取得してページに表示する場合は、新しいモデル関数を記述してコントローラの中でgetUserTasksのような新しい関数で呼び出す必要があると思いますが、ビューにそれらを送信するにはどうすればいいですか?

+0

CodeIgniterのバージョン2とバージョン3を同時に使用していません。スパムにタグを付けないでください。編集されました。 – Sparky

答えて

1

$dataアレイに別の要素を追加するだけです。

だからあなたのコントローラは、このようになります:

public function index(){ 
    $this->load->model('model_users'); 
    $query = $this->model_users->getUserInfo(); 
    $data['users'] = null; 
    if($query){ 
     $data['users'] = $query; 
    } 

    // Load tasks (create a new method in your model) 
    $data['tasks'] = $this->model_users->getUserTasks(); 

    $this->load->view('profile/profile', $data); 
} 
2

まず、私は強くお名前は、ユーザーと作業している2モデルを作成お勧めします。

ユーザーモデルでは、ユーザーとユーザーの表に関するコードを記述するだけです。

<?php 
    class User_model extends CI_Model { 
     function __construct() { 
      parent::__construct(); 
     } 

     function getUserInfo(){ /*Fetch your users data*/ } 
    } 
?> 

タスクモデルでは、タスクとタスクテーブルに関するコードを記述してください。

<?php 
    class Tasks_model extends CI_Model { 
     function __construct() { 
      parent::__construct(); 
     } 

     function getTasks($user){ /*Fetch tasks of user which specified by $user */ } 
    } 
?> 

最後に、2つのモデルのこれらの機能を使用して、コントローラのすべてのデータを入力して表示します。

public function index(){ 
    $this->load->model('User_model'); 
    $this->load->model('Tasks_model'); 

    $queryOfUsers = $this->user_model->getUserInfo(); 
    $queryOfTasks = $this->tasks_model->getTasks(); 

    //manage/edit your data comes from database as you did above. 
    //put it in data and send to view. 

    $this->load->view('profile/profile', $data); 
} 

コーディングとデバッグを容易にするCodeigniterと他のフレームワークが存在します。モデル内のすべての関数を結合すると、それらを簡単にトレースしてプロジェクトを終了することはできません。オブジェクト指向から非常に遠いでしょう。

関連する問題