我目前正在使用以下代码从我的数据库加载新闻公告。
<?php
$query = $this->db->query("SELECT * FROM news");
foreach ($query->result() as $row)
{
if($row->active == 1)
{
echo "<p>".$row->content."</p>";
}
}
?>
但是,我在CodeIgniter里面的模板文件中使用了这段代码。有没有更好的方法让我这样做,以便代码被分成模型和控制器文件,因为它应该是?
我在CodeIgniter文档站点上找到了文档,它告诉我要执行以下操作,但我真的想坚持框架的设计方式。
答案 0 :(得分:0)
我做CodeIgniter已经有很长一段时间了,但是这里有一些东西。
<强>控制器强>
您可以在控制器中使用以下代码,以便将$data
发送到特定视图。
$query = $this->db->query("SELECT * FROM news");
$data = array();
foreach ($query->result() as $row)
{
if($row->active == 1)
{
array_push($data, $row);
}
}
$this->load->view('your_view', $data);
查看强>
然后在您看来,将其称为your_view.php
,您就可以访问$data
进行循环播放。
<?php foreach($data as $row) { ?>
<p> <?php $row->content ?> </p>
<?php } ?>
答案 1 :(得分:0)
查询后是否有IF语句的原因?
<强>模型强>
public function get_news() {
$query = $this->db->query("SELECT * FROM news WHERE active = 1");
if ($query->num_rows() > 0) { // Only return if there is data
foreach($query->result() AS $row) {
$array[] = get_object_vars($row); // Just dump the values into an array
}
return $array;
}
}
<强>控制器强>
public function index() {
$this->load->model('MODEL_NAME'); // Load the model that access the database
$data['news'] = $this->MODEL_NAME->get_news(); // Assign the results of the function to the "news" index
$this->load->view('view_page', $data); // Profit
}
查看强>
<?php
foreach($news AS $row) {
echo '<p>' . $row['content'] . '</p>';
}
?>