我在我的应用程序中使用Codeigniter而且我是新手。我从Codeigniter得到了一些错误。我对变量错误感到分心。
所以,这是我的模特:
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);
}
}
最后一个是视图:
//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错误
严重性:注意
消息:未定义的变量:详细信息
文件名:views / menu_view.php
行号:124
遇到PHP错误
严重性:警告
消息:为foreach()提供的参数无效
文件名:views / menu_view.php
行号:124
我真的很困惑。我必须解决这个问题。拜托,有人帮助我。
谢谢。
答案 0 :(得分:0)
您是否在网址中传递了第三段。因为如果你不是,那么在模型中它将导致null。所以foreach不会找到$ details。我认为你需要为第一页案例分配一个默认值。也就是说,如果uri段3不存在,则它是第一页,因此模型应该采用其他方式作为参数而不是URI sergment 3
答案 1 :(得分:0)
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 );
答案 2 :(得分:0)
objekwisata
表可能不包含function getWisata
在detail
变量中返回空值的原因。并且数组包含foreach()
循环的至少一个索引。请检查表中是否有记录。