我在CodeIgniter系统中的MODEL规则在哪里


Where is my MODEL rule here in CodeIgniter system?

我正在使用codeIgniter作为我的框架来构建一个非常大的网站。一切都很好。我使用模型从/向数据库获取/发送数据。但是最近有一个问题让我感到困惑。在从整个页面的循环中获取数据时,我不使用模型。

例如,对于右侧边栏,我使用循环来获取类别列表。现在,此循环基于一个数组,而此数组是从数据库中检索的一组数据。从数据库检索此数据在控制器中处理。这是对的吗?或者我绝对应该只从数据库中获取任何数据,并且只在模型中获取任何数据?因为我只使用模型进行注册/登录/新闻通讯/订单等。

这是我的控制器之一,它也负责获取数据库数据:

$this->niazer->是一个负责获取数据库数据的库(专为我当前的项目制作)

<?php
/**
    This controller is the basic controller to render the webpages. Now we have the 
**/
class show extends CI_Controller
{
       function index()
        {                                       
            /** getting list of categories **/
            $cats = $this->niazer->get_pa('all'); // getting all the parents
            $x= $this->niazer->get_child($cats);    
            $data['main_cats'] = $cats;     
            /** getting list of categories **/
            /** getting list of special ads with 5-7 stars **/
            $special_ads_var = $this->niazer->get_ads(array("star-min"=>5, "star-max"=>7, "row"=>5)); // getting all the parents
            $data['special_ads'] = $special_ads_var;    
            /** end of special ads list **/

            /** getting list of special ads with 5-7 stars **/
            $special_ads_var = $this->niazer->get_news(array("limit"=>20)); // getting all the parents


            $theme_name = $this->theme->get_theme_with_slash(false);                                    
            $this->load->view($theme_name.'header', $data);
            $this->load->view($theme_name.'index', $data);
            $this->load->view($theme_name.'footer', $data);
        }
}

如果这是关于良好实践和原则,那么你做错了,IMO。

该模型为控制器提供了任何数据表示 用户请求(消息、书籍列表、相册等)。这 无论您想如何呈现数据模型,它都是相同的 对于用户来说,这就是为什么您可以选择任何可用的视图来渲染的原因 它。该模型包含应用程序中最重要的部分 逻辑,适用于您正在处理的问题的逻辑(a 论坛、商店、银行等)。

控制器包含更内部的组织逻辑,用于 应用程序本身(更像是家政)。

我不能在这里写这些东西,但我认为这个答案涵盖了你正在寻找的东西。

老实说,在我使用 CI 编程的早期,我什至没有使用MODEL但我的应用程序运行良好,但现在我遵循规则,显然有充分的理由遵循规则和原则 (SOLID)。所以,你可以像现在这样做,没有人会强迫你。

问题

这并不严格,您绝对应该只从数据库获取任何数据,并且只在模型中获取任何数据

它们通常只是为了我们的方便而分开,但它完全不像应该严格执行的规则

您也可以在控制器中访问数据库