我有一个表,我说哪个user_id
在哪个group_id
中,还有一个表,我说哪个user_id
有哪个user_name
。
现在我想要一个函数,我传递一个group_id
,它给我组中所有的user_name
。
控制器做什么,模型做什么:
1.控制器调用一个Model(get_user_ids_from_group
)返回用户ID,然后控制器调用不同的Model(get_user_name_by_id
)返回用户名。
1.一个控制器调用一个模型(`get_user_names_from_group),模型首先在内部获取用户id,然后获取用户名。
我知道第一种方式更加严格,但是在这种情况下你会有多严格呢?现在我总是非常严格。
因此,我的模型函数总是只有两行(查询和返回),我的控制器更大。所以,使控制器和模型大小更相等的第二个选择是可能的。
3条答案
按热度按时间iq3niunx1#
在MVC模式中,不应该只用于存储和获取数据,还应该包含业务逻辑。
控制器-应该接受输入,与模型和视图通信
模型-应包含业务逻辑和数据存储
视图-仅用于输出
就像
Input -> Process -> Output
它也取决于你在哪里把什么,你应该有一个平衡的控制器和模型的代码,而不是写在控制器或模型的一切
在你的例子中,我认为你应该使用
get_user_names_from_group
,只需要传递组名并在两个表之间进行连接查询。当你在模型中定义你的函数时,它给予你再次重用函数的选项,以防你在下一个控制器上需要同样的东西。rlcwz9us2#
常见模型示例:
字符串
xkrw2x1b3#
实际上,它与MVC无关,因为CodeIgniter没有实现MVC,而是一种MVP。
然而,如果你使用的是关系型数据库管理系统,比如MySQL,你可以
JOIN
这两个表(在模型中)并获取结果(在控制器中),就像我在SO上的a similar topic中建议的那样。application/models/user.php
字符串
然后在Controller中获取并传递结果:
application/controllers/users.php
型