在codeigniter中显示单行显示多个图像单个产品
答
您可以通过创建对用户的模式去做。最简单的方法是使用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, '" />';
}
感谢您的帮助@siniša-dragičević-martinčić – Alpesh