【问题标题】:Codeigniter control db data should be in model or controller?Codeigniter 控制数据库数据应该在模型或控制器中?
【发布时间】:2014-08-28 08:50:56
【问题描述】:

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

【问题讨论】:

  • 检查行数in controller 很好。模型对于数据库操作很有用。将计算代码放在Model中,并将结果返回到控制器中
  • $query = $this->db->get('table_name'); if($query->num_rows() >0){return true;}else{return false;} :)
  • 使用你的模型进行数据库操作:)

标签: php codeigniter


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    模型的目标是与数据库交互:selectinsertupdatedelete [...] 数据。顺便说一句,Model 并不总是一个数据库。但大多数时候都是这样。

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

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

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

    总而言之,我不会在模型中进行检查。对我来说,Controller 和 View 都是正确的,但不是在 Model 内部,其目的只是获取/推送数据。

    【讨论】:

    • 抱歉,我也是 Codeigniter 的新手,您说“模型的目标是与数据库交互:选择、插入、更新、删除 [... ] 数据。顺便说一下,Model 并不总是一个数据库”。 MODEL 还有什么用途? (如果不仅仅是数据库)
    • 我只是想指出它,因为有人说模型仅用于与数据库的关系。这是真假,因为您的数据可以存储在文件中。我从来没有遇到过这种情况,但它可能会发生。这就是 MVC 的工作方式,而不仅仅是针对 CodeIgniter。 (顺便说一句,在有人告诉我 “什么是模型” 有问题之前说出来;))
    猜你喜欢
    • 1970-01-01
    • 2012-04-02
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多