我正在学习代码Igniter,并且很难遵循MVC模式。以下是情景。
MODEL:文章
public function get_all_ideas(){
$this->db->select('article_title, article_content');
$query = $this->db->get('article');
return $query;
}
在这里,我创建了一个从表中提取所有文章的函数。
控制器:
public function articles(){
$this->load->model('article');
$data['articles'] = $this->article->get_articles();
$this->load->view('all_article', $data);
}
在这里,我在控制器中创建了一个函数,它加载模型并将查询结果传递给视图文件'all_article'。
查看:all_article
<html....
<?php
foreach($articles->results() as $article){
?>
<div id="box">
<?php echo $article->article_content;?>
</div>
<?php
}
?>
....</html>
我认为我在上面的代码中以正确的方式遵循了MVC模式。查看文件现在将显示文章的所有内容。我已经设置了'box'的css
<div id="box">
这样他们就是一种小型的预览框。另外,我发现CI中有一个文本助手word_limiter()限制了单词。由于这些框只显示文章的预览,我计划使用word_limiter()。现在这是问题所在。
如果我要限制这个词。然后我将像这样
在SAME VIEW FILE中加载一个帮助类查看:
<div id="box">
<?php
$this->load->helper('text');
echo word_limiter($article->article_content, 40);
?>
</div>
您可能已经注意到我正在加载VIEW文件中的帮助程序类,根据MVC的原理这是不正确的。因为这样的逻辑必须在CONTROLLER中。但是,因为必须在每个循环中调用方法word_limiter(),我没有看到将它放入CONTROLLER的方法。我知道,这样做违反了MVC的原则。
应该怎么做?需要帮助
答案 0 :(得分:1)
只需使用autoload(application / config / autoload.php)。 您可以自动加载该文本助手,然后在任何地方使用它。