我需要获取所有被查询过滤的行。但是只有第一行从模型返回到控制器。
下面是我的模型函数。如何获取所需的所有数据?
public function getOfferTags($param) {
$this->db->select('tags.*');
$this->db->from('tags');
$this->db->join('offer_tag', 'offer_tag.tag_id = tags.id');
$this->db->join('offers', 'offers.id = offer_tag.offer_id');
$this->db->where('offers.id', $param);
$query = $this->db->get();
return $query->row();
}
答案 0 :(得分:2)
只需不返回行,并在该位置以
的数组形式获取return $query->result_array();
之后,检入控制器并将结果存储在数组中。
答案 1 :(得分:1)
我只是想补充一下,因为您不熟悉CI,因此在使用数组以防止出现通知或问题之前,应始终检查它们是否为行。使用mehta的方法,您可以执行if(count($rows) > 0) { //rows exist } else { // no rows, display error .etc. }
或执行以下操作:
$query = $this->db->get();
if ($query->num_rows() > 0) {
return $query->result_array(); // or result() for obj
}
return false;
用法:
if ($this->somemodel->getOfferTags($stmt)) {
// has data
} else {
// no data
}
从良好的做法入手很重要,这会有所帮助;)