从不同的模型调用PHP MVC模型是否正确?

时间:2018-04-11 16:54:59

标签: php model-view-controller

我目前正在向网站添加通知功能,并且只要将用户添加到表中,就需要它来更新它的数据。我认为正确的方法是遍历我的每个控制器,每当调用模型进行更改该表时,我将使用第二个函数调用updateNotificationTable()或类似的东西。

然而,该网站非常庞大,虽然我可以确保通过更新功能跟踪所有这些控制器调用,但我很容易看到将来与该表交互的任何更改都会被遗漏。

这样做最简单的方法似乎是在模型中包含一个函数,这样一旦它从表中插入或删除一行,它就会更新那里的通知。问题是通知过程从单独的第二个模型中提取数据,我必须在起始模型中加载。

我不相信它应该以这种方式工作,但替代方案也会带来问题。在这种情况下,在我的模型中加载另一个模型以处理通知更新是正确的吗?

编辑:示例代码

function addToTable(){
    //There's probably a dozen or more functions like this scattered throughout various controllers, they all need to be followed by updateNotifications()
    $this->other_model->Insert_stuff();
    $this->updateNotifications();
}

function updateNotifications(){
    $var1 = $this->model1->get_important_info();
    $var2 = $this->model2->get_more();
    $this->Notifications_Model->doTheUpdate($var1,$var2);
}

如果我可以改为使用doTheUpdate()并让它直接调用model1和model2来获取它所需的数据,那么任何需要调用$ this-> other_model-> Insert_stuff();不需要跟进updateNotifications()调用。如果另一个程序员正在努力,那么很有可能它不会发生。

可能有十几个控制器,我将这个功能添加到各种功能执行后调用。如果Notifications_Model可以直接调用model1和model2,那么doTheUpdate

0 个答案:

没有答案