- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
几周以来,我开始开发 CakePHP 项目。从一开始我就在为 Controller 内部的代码量而苦苦挣扎。在大多数情况下, Controller 的代码行数比模型多。通过了解“瘦 Controller ,胖模型”这个表达,我现在正在寻找一种在模型中放置更多代码的方法。
此时出现的问题是,“在哪里划线”。 Controller 应该做什么,模型应该做什么。对此已经有一些问题/答案,只是我正在寻找更实用的解释。例如,我在下面放置了一个函数,该函数现在位于 Controller 内部。我认为此代码的一部分必须并且可以移动到模型中。所以我的问题是:我可以将哪些部分移动到模型中,哪些部分可以保留在 Controller 中。
/**
* Save the newly added contacts and family members.
*/
public function complete_contacts()
{
if ($this->request->is('post')) {
if (isset($this->data['FamilyMembers'])) {
$selected_user = $this->Session->read('selected_user');
$family_members = $this->data['FamilyMembers'];
$this->ContactsConnection->create();
foreach ($family_members as $family_member) {
// connection from current user to new user
$family_member['ContactsConnection']['contact_family_member_id'] = $selected_user['id'];
$family_member['ContactsConnection']['nickname'] = $selected_user['first_name'];
$this->ContactsConnection->saveAll($family_member);
// inverted connection from new user to current user
$inverted_connection['ContactsConnection']['family_member_id'] = $selected_user['id'];
$inverted_connection['ContactsConnection']['contact_family_member_id'] = $this->FamilyMember->inserted_id;
$inverted_connection['ContactsConnection']['nickname'] = $family_member['FamilyMember']['nickname'];
$this->ContactsConnection->saveAll($inverted_connection);
}
}
}
}
最佳答案
就 M 和 C 的目的而言
The model manages the behavior and data of the application domain,responds to requests for information about its state (usually from theview), and responds to instructions to change state (usually from thecontroller).
The controller receives user input and initiates a response by makingcalls on model objects. A controller accepts input from the user andinstructs the model and a view port to perform actions based on thatinput.
$selected_user = $this->Session->read('selected_user');
到您的模型并为模型的每个内部执行您的操作。您可能想要更改有关如何存储数据的规则或对其执行一些转换,而 Controller 应该对此视而不见。基本上使用 Controller 将您的信息 [经常从 View ] 获取到模型。不要直接从 Controller 操作模型。简而言之是创建您建议的功能:)
关于php - MVC : what code belongs to the model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9456365/
有一个网站曾经销售实体产品......现在他们想要销售一些完全不同的服务之王......比如信用套餐来向用户帐户收费(购买产品)或购买短信..诸如此类 所以数据库以前是这样的 order : user
所以,我一直在尝试用 SQL 编写查询,但遇到了问题。我正在尝试写一个“属于”的条件。我想要做的是,如果要获取的值属于另一个表中的列,则填充一件事,否则填充 null。 例如。 NAME table
如何为属于模型 B 或模型 C 但不属于两者的模型 A 编写关联? 假设我有一个员工模型、承包商模型和一个事件模型。关联如下: 员工有很多事件。 承包商有许多事件。 事件属于承包商或员工。 我是否创建
我想创建一个字符串,其中包含当前用户预期能够在键盘上输入的所有字符。对于英语文化中的用户,这将是 26 个大写字母和 26 个小写字母、10 个十进制数字和 30 多个符号。来自其他国家的用户会有一些
我不知道为什么我要为此苦苦挣扎,这似乎是一个非常简单的概念。所以我的挣扎让我觉得也许我的数据建模需要另一个组件...... 我正在使用 Laravel 5 并尝试定义一些模型关系。 BelongsTo
假设我有一个从给定软件工具调用的函数 foo(在 C/C++ 中)。 函数 foo 只允许写入由 foo 分配的内存或由 foo 调用的函数之一,但不允许写入写入由调用 foo 之前执行的函数分配的内
大家好,我目前在 FCC 上遇到这个算法挑战。这就是挑战的全部内容: 返回排序后应将值(第二个参数)插入数组(第一个参数)的最低索引。返回值应该是一个数字。 例如,getIndexToIns([1,2
edit - 根据下面的回复,我将重新审视我的设计。我认为我可以通过更加巧妙地设置我的业务目标和规则来避免这种困惑。感谢大家的帮助! -- 我有以下模型: S属于T T有很多S A,B,C,D,E (
我正在使用 https://github.com/go-pg/pg处理这些东西,在建立一个基本的属于关系方面有很大的问题。 所以基本上我有一个包含列 receipient_id 和 sender_id
我想定义non-line-termination-character = 在 lexer.mll .我试过let non_line_termination_character = [^('\x0D'
几周以来,我开始开发 CakePHP 项目。从一开始我就在为 Controller 内部的代码量而苦苦挣扎。在大多数情况下, Controller 的代码行数比模型多。通过了解“瘦 Controlle
因此,在我没有真正关注新发展的一段时间后,我再次研究了 MVVM,我注意到教程/指南等的数量已经大大增加。然而,MVVM 的大多数示例/示例实现都缺乏解释一些我不太清楚的东西。所有这些示例都非常简单,
Groovy版本2.4.8 Grails 2.5.1版 我试图使用like子句从Advisor表中提取行,并且如果该方法中传递了Firm名称,那么我只想从该Firm中提取Advisor。 我构造了两个
我是 DDD 概念的新手,我正在尝试设计一个严格遵循 DDD 和 Prism (WPF) 的解决方案结构。我正在堆放创建 DTO 项目(数据传输对象)的位置。据我所知,DDD 将有 4 个通用层: 演
假设我找到了一个元素: Element link = div.select("a:not([class])").first(); 我现在想知道这个特定 元素是否包含在 中-- 不一定是直系后代。 有
我正在创建一个非常简单的 Java Card Applet(版本 2.2.2),但我是 Java 卡的新手,我不知道如何将 .class 文件转换为 .cap 文件。我正在使用 converter.b
我正在寻求澄清是将代码放入 Controller 、实体还是提供服务。 我有“cardset”和“card”对象(其中许多后者嵌入前者 MongoDB 中),由普通的 PHP 类/对象表示。这些包含属
我是 ORM(和 GORM)的新手,如果这是一个明显的问题,我深表歉意,但它似乎没有被文档涵盖。 我将使用 examples from the documentation作为我的问题的基础 问题1:属
我想更好地理解类文件和内部/嵌套类,我想知道以下几点: 是InnerClasses属性用于引用“包含”类中的内部/嵌套类,还是在内部/嵌套类中用于引用“容器”类? 是InnerClasses类文件中的
我正在尝试使用 ibexpert gui 在 firebird 2.5 上创建我的第一个程序。 该过程将返回属于特定“PROCESS_ID”的“PROCESS_DATE”。我准备了以下代码: begi
我是一名优秀的程序员,十分优秀!