我是网络编程和MVC体系结构的新手。MVC:哪个模型放置我的代码?
我正在创建一个使用MVC架构(以及PHP和MySQL)的Web应用程序。
我写了一条SELECT语句,列出了将提供给表单的“可用”联系人,并填充表单中选择的“联系人”字段,其中包含要从中进行选择的人员列表。我写的SELECT语句正常工作,因为我已经从MySQL命令行测试过了。
我不确定是放置这段代码的合适模型(PHP代码在这个问题的底部)。用户还是公司?
我认为公司将是一个适当的地方,因为我有我的“公司”表中的下列唯一约束:
CONSTRAINT uc_company_contact_person_id UNIQUE (contact_person_id)
COMMENT 'A user can only be a contact person for one company.'
这里有一些我的模型和相关表格:
公司:典型的公司字段和“contact_person_id”字段(不是必需的,但如果它存在,那么它必须与唯一的user.id关联)
用户:典型用户字段和“ROLE_ID”(用户必须有一个分配的角色,他们必须有一个分配的公司属于)
角色:角色
许可名单:权限列表
role_permission表将权限绑定到角色。
生成“可用”联系人列表的函数示例。只是不太确定它属于哪个型号?
public function listAvailableContactPersons($selectedContactPerson)
{
blah, blah, blah
SELECT user_account.id AS "User_ID", CONCAT(user_account.last_name, ", ", user_account.first_name) AS "Contact_Person"
FROM user_account, role
WHERE user_account.role_id = role.id
AND role.name NOT IN ('OWNER', 'DEVELOPER', 'WEBSITE_ADMIN')
AND user_account.id NOT IN (SELECT user_account.id
FROM company
LEFT OUTER JOIN user_account
ON user_account.company_id = company.id
WHERE company.contact_person_id = user_account.id)
OR (user_account.role_id = role.id AND user_account.id = :selectedContactPerson)
ORDER BY user_account.last_name;
blah, blah, blah
$stmt->bindValue(':selectedContactPerson', $selectedContactPerson, PDO::PARAM_STR);
blah, blah, blah
return $stmt->fetchAll();
}
预先感谢您的帮助,
迈克