Php Codeigniter控制数据库数据应在模型或控制器中?
我正在研究codeigniter。我想问的是,我应该在哪里检查(是否为假?是否为0记录或更多?vs.)数据来自数据库?在模型中还是在控制器中?现在我检查它的控制器。取决于您的逻辑和代码风格。如果需要的话,我更喜欢在模型中修改数据(mysql日期到数据/时间),并返回结果数组。通过这种方式,您可以使用嵌套较少的If方法编写更清晰的控制器,也可以在视图echo foreach:)模型的目标是与数据库交互:Php Codeigniter控制数据库数据应在模型或控制器中?,php,codeigniter,Php,Codeigniter,我正在研究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。(顺便说一句,在有人告诉我“什么是模型”是错的之前说出来)