我使用Codeigniter为我的应用程序,我是一个新手。我从Codeigniter得到几个错误。变量error让我分心了
这是我的模型:
class menuObjek extends CI_Model{
public function __construct(){
parent::__construct();
$this->load->database();
}
public function getWisata($perPage,$uri){
$this->db->select("namaObjWisata, deskripsiObjWisata");
$this->db->from("objekwisata");
$this->db->order_by("kategori","ASC");
$getData = $this->db->get("", $perPage, $uri);
if($getData->num_rows() > 0){
return $getData->result_array();
}else{
return null;
};
}
}
控制器:
class showObjek extends CI_Controller {
private $data= array();
public function showObjek(){
parent:: __construct();
$this->load->model("menuobjek","", TRUE);
$this->load->helper("url");
$this->load->database();
$this->load->library("pagination");
}
public function iniShow() {
$this->db->select("*");
$this->db->from("objekwisata");
$getData = $this->db->get();
$result = $getData->num_rows();
//var $detail;
$config["base_url"] = base_url()."index.php/showObjek/iniShow/";
$config["total_rows"] = $result;
$config["per_page"] = 10;
$config["uri_segment"] = 3;
$config["full_tag_open"] = "<p>";
$config["full_tag_close"] = "</p>";
$config["first_link"] = "<< First";
$config["last_link"] = "Last >> ";
$data["detail"] = $this->menuobjek->getWisata($config["per_page"], $this->uri->segment(3));
$this->pagination->initialize($config);
$data["pagination"]= $this->pagination->create_links();
$this->load->view("menu_view", $data);
}
}
最后一个是View:
//if(isset($detail)){
foreach($detail as $rows){
echo"
<li>
<a href=''>
<img src='#' class='img-rounded' />
<p class='judul_objek'>".$rows['namaObjWisata']."</p>
<article>
".$rows['deskripsiObjWisata']."
</article>
</a>
</li>
";
}
//}
显示以下错误:
遇到PHP错误
严重性:注意
消息:Undefined variable: detail
文件名:视图/menu_view.php
行号:124
遇到PHP错误
严重性:警告
消息:为foreach()提供了无效参数
文件名:视图/menu_view.php
行号:124
我真的很困惑。我必须解决这个问题。拜托,谁来帮帮我。
谢谢。
您是否正在传递url中的第三段?因为如果你不是,那么在模型中它将导致null。因此foreach将找不到$details。我认为你需要为第一页指定一个默认值。也就是说,如果uri段3不存在,那么它是第一页,因此模型应该采用其他东西作为参数,而不是uri段3
TRY
if(!preg_match('{^'d+$}',$uri)){
$this->db->limit($perPage); //first page
}else{
$this->db->limit($perPage, $uri);
}
$getData = $this->db->get();
//$getData = $this->db->get("", $perPage,$uri );
objekwisata
表可能不包含function getWisata
在detail
变量中返回空值的任何记录。对于foreach()
循环,数组至少包含一个索引。请检查表中是否有记录。