【发布时间】:2015-07-13 05:04:23
【问题描述】:
我正在使用 CodeIgniter 3 开发一个新闻网站。几乎每个页面都包含一个 公告板,其内容在所有页面上都是相同的。我为此部分创建了一个名为“noticeboard.php”的视图。不同的页面由不同的Controller控制。即 Home、Post、Gallery、Poll 等。这里使用控制器的问题是我需要在每个控制器上执行两个操作以生成公告板 HTML。
控制器看起来像:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class SomeController extends CI_Controller {
/* .. */
public function index() {
/* .. */
$noticeboard['notice'] = $this->noticeboard_model->getNotice(); // Gets Notice's HTML
$data['noticeboard'] = $this->load->view( 'sidebar/noticeboard', $noticeboard, TRUE );
/* .. */
/* $data is served to main page template */
}
/* .. */
}
而views/sidebar/noticeboard.php 看起来像:
<div class="noticeboard">
<h3>Notice</h3>
<?php echo $notice; ?>
</div>
我可以通过在 Noticeboard 模型上简单地使用 getNoticeboardHTML() 并让模型获取视图并返回 HTML 来解决此代码冗余问题。但这是一个好习惯吗?
【问题讨论】:
标签: php codeigniter model-view-controller