2017-07-03 154 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