MVC模式(需要模型中的视图对象)

Pee*_*Haa 0 php model-view-controller

我在我的应用程序中使用MVC模式.

现在我需要模型中的视图对象.

我不想在模型中将视图添加为我的函数的参数(因为我在其他函数中也需要它).而且我不想继续传递它.

是否应该将视图添加为模型构造函数的属性?

还有另外一种方法吗?我不应该首先需要模型中的视图对象吗?

这样做的首选方式是什么?

例:

调节器

function someAction()
{
    $somemodel->add();
}
Run Code Online (Sandbox Code Playgroud)

模型

class SomeModel()
{
    function add()
    {
        if ($view->user) {
            // do stuff
            $this->mail();
        } else {
            // do other stuff
        }
    }

    function mail()
    {
        Mailer::send($view->user->email, $this->getitems(), $view->layout);
    }

    function getitems()
    {
        return Items::getitems($view->user);
    }
}
Run Code Online (Sandbox Code Playgroud)

Art*_*tak 5

如果您真的在做MVC,那么您将不需要模型中的视图,因为只有控制器才能访问视图.

看看你提供的代码,我可以说一件事:该add()方法不应该$view以任何方式引用(即使访问其属性).相反,应该为模型提供$view->user来自控制器的值.该mail()方法也是如此.

考虑解决这些问题.否则,你以后会遇到更糟糕的事情.