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