2011-02-27 24 views
0

我有一个数据库中的数据表,我想在我的网站的各个页面上显示。理想情况下,我想只是有一个包含或东西,将脱落并获取数据,并返回HTML表。每次我需要使用它时,html和数据都是相同的。Codeigniter可重用部分

我想知道这样做

感谢

编辑

如果这会有所帮助,类似的Django“包容”自定义标签的东西的最佳方式......任何Django开发阅读

+0

你可以创建一个包含HTML,你可能包括在其他视图中的视图(如果您确信每次都会有相同的数据,您可以在将网站存活之前创建html,并且只包含视图) – Cronco 2011-02-27 01:30:54

+0

数据本身可能不一样,但数据格式为,无论在哪个页面上输入 – neolaser 2011-02-27 22:11:04

回答

0

好吧,所以这里有一件事情对我有用,但它绝对不是完美的。

我创建了一个视图,该视图调用了获取数据的模型,然后将数据放入表中。这样,我只需要将这个视图放在任何地方。

我明白这完全遗址有MVC框架的地步,但希望它证明什么,我想做的事...和它的作品

+0

您可能已将该视图呈现为一个子视图,并将包含您的数据的参数传递给该子视图。这种方式不会直接调用数据库将通过查看。 – 2017-12-21 12:59:18

0

您应该使用模型中的函数来获取所需的数据。您的控制器调用模型函数并将返回的信息发送到视图。 Codeigniter不需要使用传统的PHP。我建议您查看user guide。这非常好,并会告诉你所有你需要知道与CI开发的基本知识。但为了让你开始,你要使用Models, Views, and Controllers。你的网址会告诉CI该控制器内部的控制器和功能运行。如果您的网址是

http://www.example.com/my_controller/load_my_view

然后CI将做什么是在my_controller控制器load_my_view函数内。函数load_my_view依次实例化模型“my_table”并运行数据库查询,返回控制器发送给视图的信息。一个基本的例子如下:

你的模型

class my_table extends CI_Model{ 
    function my_data(){ 
     $this->db->select('column_1,column_2,column_3'); 
     $this->db->from('my_table'); 
     $query = $this->db->get(); 
     if($query->num_rows()>0){ 
      $result = $query->result(); 
     } 
     else{ 
      $result = false; 
     } 
     return $result; 
    } 


} 

你的控制器

class my_controller extends CI_Controller{ 
    function load_my_view(){ 
     $this->load->model('my_table'); 
     $data['my_results'] = $this->my_table->my_data(); 
     $this->load->view('my_view'); 
    } 

}

你查看

<ul id = "my_db_results"> 

    <?php foreach($my_results as $result):?> 
     <li><?php echo $result->column_1." : ".$result->column_2." (".$result->column_3.")";?></li> 
    <?php endforeach;?> 
</ul> 
+0

谢谢您的回复。我理解mvc,我的观点是我有一块数据(在我的情况下,只是一个有序的表),我想在几个地方使用。因此,不必做所有的事情并将其加载到视图中,如果有什么我可以做的只是说“把那张桌子放在这里”......如果有意义的话 – neolaser 2011-02-27 22:09:40

+0

我猜缓存可能是你的答案,正如bensiu所建议的那样,除非你需要动态地创建一个映像文件并在最初的获取请求之后插入任何你需要的表格。 – kevtrout 2011-02-27 22:37:58

+0

缓存每次都会更新表吗?当然,你可以做一些事情来制作可重复使用的代码/数据部分...... – neolaser 2011-02-27 23:45:12