这是否违反了MVC的原则?代码点火器应用程序



我正在学习代码Igniter,很难遵循MVC模式。下面是场景。

型号:文章

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_limite(),它限制了单词。由于这些框只显示文章的预览,所以我计划使用word_limiter()。现在问题来了。

如果我限制这个词的话。然后,我将在SAME VIEW FILE中加载一个助手类,如下所示

视图:

<div id="box">
<?php
$this->load->helper('text'); 
echo word_limiter($article->article_content, 40);
?>
</div>

您可能已经注意到,我正在VIEW文件中加载helper类,根据MVC的原理,这是非常不正确的。因为这样的逻辑必须在CONTROLLER中。但是由于在每个循环中都必须调用方法word_limiter(),所以我没有找到将其放入CONTROLLER的方法。我知道,这样做违反了MVC的原则。

应该怎么做?需要帮助

只需使用自动加载(application/config/autoload.php)。您可以自动加载该文本助手,然后在任何需要的地方使用它。

最新更新