我有一个数据库表,我希望在我的网站的各个页面上显示。理想情况下,我希望只有一个包含或某些东西将会关闭并获取数据,并返回html表。每当我需要使用它时,html和数据都是相同的。
我想知道这样做的最好方法
由于
修改
如果这有帮助,类似于Django“包含”自定义标签...对于任何django开发人员阅读
答案 0 :(得分:1)
Me
答案 1 :(得分:0)
您应该使用模型中的函数来获取所需的数据。您的控制器调用模型函数并将返回的信息发送到视图。您不需要使用Codeigniter的传统PHP包含。我建议审核user guide。它非常好,并会告诉您使用CI开发所需的所有基本知识。但是为了帮助您入门,您可以使用Models, Views, and Controllers。您的URL将告诉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>
答案 2 :(得分:0)
这似乎是一个使用缓存的好机会:http://codeigniter.com/user_guide/libraries/caching.html
答案 3 :(得分:0)
好的,所以这里有一件事对我有用,但绝对不完美。
我创建了一个视图,其中调用模型获取数据然后将数据放入表中。这样,我只需要包含此视图就可以将表放在任何位置。
我理解这完全破坏了拥有MVC框架的重点,但希望它能够展示我想要做的......并且它有效