我有一个在codeigniter中开发的项目。
项目是这样的:
-root
--controller
---Slider.php
--models
---My_data.php
--views
---slider_view.php
---giris.php
public function manset_al(){
$title['title']='manşet listesi';
$this->load->model('My_data');
$data['manset']= $this->My_data->get_manset();
$this->load->view('slider_view' ,$data);
}
public function get_manset() {
// $sorgu =
// mysql_query("select * from manset, haberler
// where manset.onay='1' and manset.link=haberler.id and haberler.onay='1'
// order by haberler.id desc");
$this->db->select('*');
$this->db->from('manset as man, haberler as hab');
$this->db->where('man.link=hab.id');
$this->db->where('hab.onay=1');
$query = $this->db->get();
if ($query->num_rows() > 0) {
return $query->result();
} else {
return $query->result();
}
foreach($manset as $row){
$baslik =$row->baslik;
$icerik =$row->icerik;
$link =$row->link;
$img_path =$row->img_path;
$giris =$row->giris;
$cikis =$row->cikis;
echo '
<div>
<a href="?pid='.$link.'"> <img data-u="image" src="'.$img_path.'"/></a>
<div data-u="thumb"> <a href="?pid='.$link.'"> <h5 style="color:white; margin:10px;">'.$baslik.' </h5> </a></div>
</div>';
}
现在我打电话了
http//example.com/index.php/Slider/manset_al
每个想法都没问题 - 滑块正在运行。
但是当我使用此代码获取giris.php
中的滑块时;
$this->load->view('slider_view');
它没有运行并说:undefined变量manset;
怎么能解决它?
谢谢。
答案 0 :(得分:0)
我们缺少一些细节来快速解决这个问题:即giris.php是如何调用的?没有这些细节,我只能给出一般答案。
此错误表示您尝试访问模板文件中尚未传递给模板系统的数据。例如,在您的控制器(Slider.php)中,您将数据传递到模板:
$this->load->view('slider_view' ,$data);
$data
是重要的部分:codeigniter获取该数组中的每个条目,并在模板系统中创建一个名称对应于每个键名称的变量。因此,foreach( $manset as $row )
有效,因为$data
有一个名为manset
的密钥,其中包含每一行。您可以在giris.php
中看到您明确不向模板发送任何数据:
$this->load->view('slider_view');
注意缺少第二个参数。当然,您的文件结构意味着giris.php
本身就是一个视图文件,这意味着调用giris.php
的任何控制器方法都需要将数据发送到视图。所以一般来说,这就是答案:无论控制器最终调用giris.php
,都需要将滑块信息发送到模板系统,但事实并非如此。如果没有关于giris.php
实际调用方式的更多细节,那就是我能得到的具体内容。