我有一个来自数据库的数据表,我想在我网站的各个页面上显示。理想情况下,我只想有一个包含或其他东西会去获取数据,并返回 html 表。每次我需要使用它时,html 和数据都是相同的。
我想知道这样做的最佳方法
谢谢
编辑
如果这有帮助,类似于 Django“包含”自定义标签的东西......对于任何阅读的 Django 开发人员
我有一个来自数据库的数据表,我想在我网站的各个页面上显示。理想情况下,我只想有一个包含或其他东西会去获取数据,并返回 html 表。每次我需要使用它时,html 和数据都是相同的。
我想知道这样做的最佳方法
谢谢
编辑
如果这有帮助,类似于 Django“包含”自定义标签的东西......对于任何阅读的 Django 开发人员
you need to pass the variable $data to the view method.
This is your code:
function load_my_view(){
$this->load->model('my_table');
$data['my_results'] = $this->my_table->my_data();
$this->load->view('my_view');
}
Please change it to this in order to load the $data into the view:
function load_my_view(){
$this->load->model('my_table');
$data['my_results'] = $this->my_table->my_data();
$this->load->view('my_view',$data);
}
好的,这是对我有用的一件事,但它绝对不完美。
我创建了一个视图,在该视图中调用模型获取数据,然后将数据放入表中。这样,我只需要包含这个视图就可以将表格放在任何地方。
我知道这完全破坏了拥有 MVC 框架的意义,但希望它展示了我想要做的事情......并且它有效
您应该在模型中使用函数来获取所需的数据。您的控制器调用模型函数并将返回的信息发送到视图。您不需要将传统的 php 包含与 Codeigniter 一起使用。我建议查看用户指南。它非常好,它会告诉你使用 CI 开发需要知道的所有基本知识。但是为了让你开始,你想使用模型、视图和控制器。您的 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>
使用缓存似乎是一个很好的机会:http: //codeigniter.com/user_guide/libraries/caching.html