2010-04-07 72 views
0

我有一个索引功能的控制器如下:笨 - 从一个数组变量的访问传递到一个页面

function index() 
{ 
    $this->load->model('products_model'); 
    $data['product'] = $this->products_model->get(3); // 3 = product id 
    $data['product_no'] = 3; 
    $data['main_content'] = 'product_view'; 
    //print_r($data['products']); 
    $this->load->view('includes/template', $data); 
} 

这是products_model文件get函数

function get($id) 
{ 
    $results = $this->db->get_where('products', array('id' => $id))->result(); 
    //get the first item 
    $result = $results[0]; 
    return $result; 
} 

产品表中包含名称,价格等字段请告诉我如何从$ data ['product']输入变量传入视图后如何输出?尽管print_r(已注释掉)显示数据 - 我没有将它传递到视图中,但我已经尝试了很多东西,但没有任何工作。我想这可能是因为视图调用模板文件,该文件引用main_content变量:

模板文件的内容:

<?php $this->load->view('includes/header'); ?> 

<?php $this->load->view($main_content); ?> 

<?php $this->load->view('includes/footer'); ?> 

,但我尝试创建一个平面视图文件,仍然无法访问的变量。

非常感谢,

回答

1

您的$ data数组被“翻录”成视图内的单个变量。

print $product; 
print $product_no; 
print $main_content; 
+0

是的,但它们也被列入$ this-> load - > _ ci_cached_vars中,用于没有自己的数据数组的子视图中。 – 2010-04-07 12:27:58

+0

感谢您的帮助。我已经删除了该模板文件 - 现在该视图是一个平面的HTML文件。我也将控制器索引函数更改为 函数索引() {this-> load-> model('products_model'); $ data ['product'] = $ this-> products_model-> get(3); // 3 =产品ID $ this-> load-> view('test',$ data); } 但是,我无法访问视图中的数组变量。正确的代码是什么?我已经尝试echo $ this - > $ price,echo $ data ['price'] - 我确定这是简单的,我做错了什么? – Matt 2010-04-07 14:53:54

0

处理页眉页脚&这种方式吸并得到的难以管理的很快。

尝试使用我的Template library,您的数据将传递到product_view没有问题。

+0

谢谢,我会看看这个菲尔。 – Matt 2010-04-07 13:27:47

相关问题