答案 0 :(得分: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, '" />';
}