2016-12-06 86 views
0

我剛剛在CodeIgniter中構建了一個簡單的待辦事項列表,我剛剛學習它。CodeIgniter在視圖中加載兩個控制器函數

我有一個配置文件頁面,應該顯示用戶詳細信息+他檢查的所有項目。

這是我的看法到目前爲止

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

</div> 

這是我的控制器

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); 
} 

而且我的模型

現在你可以看到,我從選擇用戶信息用戶表並使用索引控制器功能將其發送到視圖。現在,如果我想從list_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和其他框架爲便於編碼和調試而存在。如果將模型中的所有功能組合在一起,無法輕鬆追蹤它們並結束項目,那麼與面向對象相距甚遠。

相關問題