我经常会对创建函数的模型感到困惑。让我试着用一个简单的示例来解释我目前的情况:这属于哪个模特?
我有一个Log
模型,其中包含我们的应用程序的所有活动。我想要获取特定用户的活动。我应该在User
模型还是Log
模型中创建getActivity($userId)
函数?
我经常会对创建函数的模型感到困惑。让我试着用一个简单的示例来解释我目前的情况:这属于哪个模特?
我有一个Log
模型,其中包含我们的应用程序的所有活动。我想要获取特定用户的活动。我应该在User
模型还是Log
模型中创建getActivity($userId)
函数?
为什么不是两个?
当然,最重要的是避免代码重复,因为这很难维护 - 而且是一个难看的解决方案。
日志模型可能包含一个名为getActivity()
的方法,该方法提取所有活动(或基于分页和/或日志级别所需的任何参数)。此外,为了自我记录的目的,创建一个名为getUserActivity($userId)
的方法 - 这种方法有望看起来很自然。
用户模型现在可以含有一种叫getActivity()
方法(同样,有需要的分页任何参数和/或日志级别),这反过来又调用您的日志模型getUserActivity()
方法。
这是最明智的选择吗?
好吧,从来没有任何问题的单一解决方案 - 但我喜欢这个解决方案是,你现在有可能分开每个模型的逻辑,但仍然有一个可见的和功能之间的联系他们。其次,你知道有可能通过简单的方式链接User对象来记录活动。
为了记录,'getActivity'和'getUserActivity'可以是相同的方法,但有一个正确的参数,但我很喜欢为每个用例分配逻辑和命名。 – Repox 2014-10-09 08:01:39
由于函数中主要使用的数据库将是"Log"
之一,因此应将其放置在Log
模型中。
你应该写在 - 日志模型 – Khushboo 2014-10-09 07:47:15
如果我是你,我会把日志模型中的getActivity功能 – justrohu 2014-10-09 07:47:24
你只有* 1 *模型。多个“模型”不是一件事。你可能并且应该在你的模型中有几个*类*,但是你从来没有真的有好几个模型。 – deceze 2014-10-09 07:49:40