模型交互应该如何与不同的控制器

时间:2015-07-01 02:39:11

标签: php model-view-controller yii model

我有一个名为Message的模型,这是我网站上的内部通知。

我有一个控制器,RegistrationController可以处理新人注册我的网站。发生这种情况时,我会向所有用户发送Message

这是所涉及的代码的样子:

public static createMessage($receiver, $content)
{
    $message = new Message;
    $message->receiver = $receiver;
    $message->content = $content;
    $message->save(false);
}

RegistrationController.php

中会这样调用
   foreach($users as user)
       Message::createMessage($user->ID, $content);

什么是最好的方法,它不会违反mvc?

  1. 在Message模型中,我添加了createMessage()函数。它不需要进口。

  2. 或者我创建一个MessageController并在里面添加该功能?如果我执行版本2,那么我需要include MessageController中的RegistrationController

  3. 更好的主意。

  4. 哪个版本可以产生更好的代码,可以更好地维护?请量化您的答案以避免意见。

1 个答案:

答案 0 :(得分:0)

做MVC是一种编程风格。 放置逻辑没有限制。您可以将它放在模型或控制器中。

最适合您的工作方式,使用它。

我通常在Controller中输入通过接口与用户交互的逻辑。 (从接口获取值)

并提供有助于业务规则的逻辑模型。 (使用接口和数据库中的值执行操作)

如果您决定将Message逻辑作为Controller,则不需要包含MessageController。

但请确保在/config/main.php中包含以下内容:

'application.controllers.*'