2017-07-03 48 views

回答

0

您可以通過創建對用戶的模式去做。最簡單的方法是使用sql join在模型中創建單個方法,但我更喜歡爲不同類型的數據分離方法。

class User_model extends CI_Model { 
     public $User_id; 
     public $Lname; 
     public $Fname; 
     public $Timestamp; 

     public function __construct($id = null){ 
      parent::__construct(); 
     } 

     public function getUserByID($id){ 
      $query = $this 
         ->db 
         ->from('Users') 
         ->where('User_id', $id) 
         ->get(); 
      $results = $query->result(); 
      if(count($result) > 0){ 
       return $result[0]; 
      } 
     } 

     public function getUserPicturesByID($id){ 
      $query = $this 
         ->db 
         ->from('Images') 
         ->where('User_id', $id) 
         ->get(); 
      $results = $query->result(); 
      if(count($result) > 0){ 
       return $result; 
      } 
     } 


     public function getAllUserDataByID($id){ 
      $query = $this 
         ->db 
         ->from('Users') 
         ->join('Images', 'Users.User_id = Images._User_id') 
         ->where('User_id', $id) 
         ->get(); 
      $results = $query->result(); 
      if(count($result) > 0){ 
       return $result[0]; 
      } 
     } 

    } 

您可以通過添加模型名稱的application/config/autoload.php文件,也可以從你的控制器負荷模型自動加載模型。

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

然後就可以調用模型方法在你的控制器這樣

$user = $this->User_model->getUserByID(1); 
    $userPictures = $this->User_model->getUserPicturesByID(1); 

和數據傳遞到這樣的觀點:

$data = array(
      'user' => $user, 
      'pictures' => userPictures 
      ); 
    $this->load->view('user_view', $data); 

...和你的觀點,你可以訪問這樣的數據:

echo $user->Fname; 

或在foreach循環中的圖片:

foreach($pic in $pictures){ 
     echo '<img src="', $pic->ImagePath, '" />'; 
    } 
+0

感謝您的幫助@siniša-dragičević-martinčić – Alpesh

相關問題