Yii2 - 控制器或模型中的功能

时间:2015-11-22 10:16:52

标签: model-view-controller yii2

我在控制器中有这样的功能

public function actionNext(){
    $category = $this->getCategory();
    $not_finished = $this->getQuestionFromCategory($category);
    if(!empty($not_finished)){
        $next_question_id = getNextQuestionId();
        $this->updateNextQuestion();
    }
    else{
        addNextCategory();

    }
}

我的问题是:所有功能

  • 的getCategory
  • getQuestionFromCategory
  • getNextQuestionId
  • updateNextQuestion
  • addNextCategory
示例中的

也应该在模型或控制器中(所有函数都是对db的请求)。

1 个答案:

答案 0 :(得分:0)

通常,与db相关的函数在模型中,模型扩展了活动记录,为此还包含相关的sql / schema / model相关函数。在你的情况下,你会想到函数getCategory,可能还有getQuestionFormCategory

与支持控制器操作的服务相关的功能位于控制器中。在您的情况下genNextQuestionIdupdateNewQuestionaddNextQuestion

主要规则是:关于实体的结构知识在模型中是什么,关于战术行为的是控制器。

显然,与排序和查找相关的部分放在...搜索类中。