Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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 - Fatal编程技术网

Php Codeigniter控制数据库数据应在模型或控制器中?

Php Codeigniter控制数据库数据应在模型或控制器中?,php,codeigniter,Php,Codeigniter,我正在研究codeigniter。我想问的是,我应该在哪里检查(是否为假?是否为0记录或更多?vs.)数据来自数据库?在模型中还是在控制器中?现在我检查它的控制器。取决于您的逻辑和代码风格。如果需要的话,我更喜欢在模型中修改数据(mysql日期到数据/时间),并返回结果数组。通过这种方式,您可以使用嵌套较少的If方法编写更清晰的控制器,也可以在视图echo foreach:)模型的目标是与数据库交互:选择,插入,更新,删除[…]数据。顺便说一下,模型并不总是一个数据库。但大多数时候都是这样 根据

我正在研究codeigniter。我想问的是,我应该在哪里检查(是否为假?是否为0记录或更多?vs.)数据来自数据库?在模型中还是在控制器中?现在我检查它的控制器。

取决于您的逻辑和代码风格。如果需要的话,我更喜欢在模型中修改数据(mysql日期到数据/时间),并返回结果数组。通过这种方式,您可以使用嵌套较少的If方法编写更清晰的控制器,也可以在视图echo foreach:)

模型的目标是与数据库交互:
选择
插入
更新
删除
[…]数据。顺便说一下,模型并不总是一个数据库。但大多数时候都是这样

根据您的需要,第一个想法是在控制器中进行检查

如果您不使用从模型获得的结果在控制器内进行其他处理。在视图中执行检查。例如,如果您想知道是否已从数据库检索产品,我更愿意在视图中执行此操作:

if( count($possibleData) > 0) {
  foreach($possibleData as $values) {
    // Show your data
  }
} 
else {
  echo 'no products';
}

总之,我不会在模型中进行检查。对我来说,控制器和视图都是正确的,但不在模型内部,其目的只是获取/推送数据。

检查控制器中的num rows
。。模型对于数据库操作非常有用。将计算代码放入模型中,并将结果返回控制器$query=$this->db->get('table_name');如果($query->num_rows()>0){return true;}或者{return false;}:)用于数据库操作,请使用您的模型:)很抱歉,我也不熟悉Codeigniter,您说过“模型的目标是与数据库交互:选择、插入、更新、删除[…]数据。顺便说一句,模型并不总是数据库”。这个模型还有什么用途?(如果不仅仅是数据库)我只是想指出这一点,因为有些人说该模型仅用于与数据库的关系。这是真是假,因为您的数据可以存储在文件中。我从来没有遇到过这种情况,但它可能发生。这是MVC的工作方式,而不仅仅是针对CodeIgniter。(顺便说一句,在有人告诉我“什么是模型”是错的之前说出来)