Немного запутался насчет MVC и где поставить запрос к базе данных - PullRequest
1 голос
/ 17 июня 2010

ОК, так что мое приложение Joomla в формате MVC.Я все еще немного озадачен тем, куда помещать определенные операции, в контроллере или в модели.Эта функция ниже находится в контроллере, она вызывается, когда &task=remove.Должен ли материал базы данных быть в модели?Кажется, он там не подходит, потому что у меня есть две модели editapp (отображение одного приложения) и allapps (отображение всех приложений), теперь какую из них я бы поместил в операцию удаления?

    /**
 * 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?

1 Ответ

1 голос
/ 19 июня 2010

Я бы постарался сохранить все функции базы данных в вашей модели. Если вы не знаете, какую модель следует использовать в методе, возможно, вам нужно изменить свои модели, чтобы лучше отражать вашу проблему.

В вашем случае, однако, я думаю, что этот метод будет использоваться в allapps, поскольку он может обрабатывать операции с несколькими приложениями.

Если вы передадите задачу, этот метод будет вызван. Если вы хотите затем вызвать метод отображения, просто вызовите его в конце вашего метода редактирования.

В случае сомнений взгляните на модели и контроллеры компонента веб-ссылок. Они очень просты и являются хорошим примером того, как сделать MVC в Joomla!.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...