Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在CodeIgniter系统中,我的模型规则在哪里?_Php_Codeigniter_Database Abstraction - Fatal编程技术网

Php 在CodeIgniter系统中,我的模型规则在哪里?

Php 在CodeIgniter系统中,我的模型规则在哪里?,php,codeigniter,database-abstraction,Php,Codeigniter,Database Abstraction,我使用codeIgniter作为我的框架来构建一个非常大的网站。一切都很好。我使用模型从数据库获取/发送数据。但最近有一个问题让我感到困惑。在从整个页面的循环中获取数据时,我不使用模型 例如,对于右侧边栏,我使用循环来获取类别列表。现在,这个循环基于一个数组,这个数组是从数据库检索到的一组数据。从数据库检索的数据在控制器中处理。这是正确的吗?或者我绝对应该只从数据库获取数据,并且只在模型中获取数据?因为我只在注册/登录/时事通讯/订单等方面使用模型 下面是我的一个控制器,它也负责获取数据库数据:

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

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

下面是我的一个控制器,它也负责获取数据库数据:

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

没问题

没有什么严格的要求,您绝对应该只从DB获取任何数据,并且只从模型中获取数据

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

您还可以访问控制器中的DB,这没有问题

没有什么严格的要求,您绝对应该只从DB获取任何数据,并且只从模型中获取数据

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


您还可以访问控制器中的DB

如果是关于良好实践和原则,那么您做得不对,IMO

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

控制器包含一个更内部的组织逻辑 应用程序本身(更像是内务管理)

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


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

如果这是关于良好的实践和原则,那么你就做错了,依我看

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

控制器包含一个更内部的组织逻辑 应用程序本身(更像是内务管理)

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


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

niazer是你的模型,不好的做法是直接在控制器中执行例如
get_ads()
get_news()
所做的操作,但你的模型不是okniazer,不好的做法是执行例如
get_ads()所做的操作
get_news()
直接在控制器中执行,但您的操作不正确,这当然是正确的。我很清楚,需要一个有经验的人来回答。因为与任何理论一样,MVC的理想实现是完全理解的。我甚至可以从视图中访问DB,但这使得它相当非MVC。你越接近MVC,你的项目就越方便。说得好@MostafaTalebi:-)你当然是对的。我很清楚,需要一个有经验的人来回答。因为与任何理论一样,MVC的理想实现是完全理解的。我甚至可以从视图中访问DB,但这使得它相当非MVC。你越接近MVC,你的项目就越方便
<?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);

        }

}