1
好的,所以我的Joomla应用程序是以MVC格式。在Controller或Model中,我对将某些操作放在哪里有点困惑。下面的这个函数在控制器中,当&task=remove
被调用。数据库的东西应该在模型中?它似乎不适合那里,因为我有两个模型editapp(显示一个应用程序)和allapps(显示所有应用程序),现在哪一个我会把删除操作?对MVC和数据库查询的位置有点困惑
/**
* Delete an application
*/
function remove() {
global $mainframe;
$cid = JRequest::getVar('cid', array(), '', 'array');
$db =& JFactory::getDBO();
//if there are items to delete
if(count($cid)){
$cids = implode(',', $cid);
$query = "DELETE FROM #__myapp_apps WHERE id IN ($cids)";
$db->setQuery($query);
if (!$db->query()){
echo "<script> alert('".$db->getErrorMsg()."');window.history.go(-1); </script>\n";
}
}
$mainframe->redirect('index.php?option=' . $option . '&c=apps');
}
我也对流程是如何工作感到困惑。例如,在默认情况下调用的控制器中有一个display()函数。如果我传递一个任务,那么display()函数是否仍然运行,或者直接转到由$ task传递的函数名称?
关于你对我的回答的评论,你说得很对。我愚蠢地回答,没有考虑到Joomla的模式可能与我使用其他技术所看到的不同。我已经删除了我的答案,这样就不会让任何人误入歧途。如果你还没有看到它,这是一个关于如何在joomla中创建一个mvc组件的指南,也许可以帮助你:http://www.vojtechovsky.net/joomla/component-helloworld-2-create-tutorial- guide-en.html。对于错误信息抱歉。 – 2010-06-17 09:43:23