Model view controller Yii2-控制器或模型中的功能
我在控制器中有这样的功能Model view controller Yii2-控制器或模型中的功能,model-view-controller,yii2,Model View Controller,Yii2,我在控制器中有这样的功能 public function actionNext(){ $category = $this->getCategory(); $not_finished = $this->getQuestionFromCategory($category); if(!empty($not_finished)){ $next_question_id = getNextQuestionId(); $this->up
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
示例中的数据也应该在模型或控制器中(所有函数都是对数据库的请求)。通常与数据库相关的函数在模型中,特别是模型扩展活动记录,因此还包含相关的sql/schema/模型相关函数。在您的例子中,请考虑函数
getCategory
,并且可能getQuestionFormCategory
与支持控制器操作的服务相关的功能放在控制器中。在您的情况下,genNextQuestionId
,updateNewQuestion
,addNextQuestion
主要规则是:关于实体的结构知识在模型中,关于战术行为或控制器中
显然,与排序和查找相关的部分位于…搜索类中。问题和类别听起来像模型对象。创建那些类(从Model或ActiveRecord派生)并在那里添加这些函数。像这样的问题不符合SO规则。顺便说一句,这取决于网站的这一部分有多大。从技术上讲,您可以在一个模型中分离验证,在另一个模型中分离帮助程序,等等。然后是要在控制器中的视图和模型之间进行委托的代码。例如QuestionModel和QuestionHelperModel。然而,对于几个函数,它们都可以放在一个函数中,即:QuestionModel。在这里,您可以使用自己的视图、多个模型和控制器创建自己的模块。。