我目前正在向网站添加通知功能,并且只要将用户添加到表中,就需要它来更新它的数据。我认为正确的方法是遍历我的每个控制器,每当调用模型进行更改该表时,我将使用第二个函数调用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