web-dev-qa-db-fra.com

Incluant plusieurs modèles pour visualiser ou contrôleur de différents contrôleurs

Je développe un composant "Tableau de bord client" dans Joomla 3.2.
J'ai besoin d'inclure plusieurs modèles de différents composants que j'ai construits. J'ai essayé d'inclure setModel selon les vues dans le contrôleur, voici le contrôleur de mon entreprise

class BusinessServicesControllerBusinessServices extends JControllerForm
{
        public function display($cachable = false, $urlparams = false)
        {

            // set default view if not set
            $input = JFactory::getApplication()->input;
            $input->set('view', $input->getCmd('view', 'BusinessServices'));
            $viewName       = $this->input->get('view');
            switch ($viewName)
            {
                case 'businessservices':
                    $viewLayout = $this->input->get('layout', 'default');
                    $view = $this->getView($viewName, $format, '', array('base_path' => $this->basePath, 'layout' => $viewLayout));
                    $view->setModel($this->getModel('businessservices'));
                    break;
                case 'trademark':
                    $viewLayout = $this->input->get('layout', 'default');
                    $view = $this->getView($viewName, $format, '', array('base_path' => $this->basePath, 'layout' => $viewLayout));
                    $view->setModel($this->getModel('trademark'));
                    break;
            }
            // call parent behavior
            parent::display($cachable);
        }
}

aussi, j'ai essayé d'inclure en utilisant:

 JLoader::import('joomla.application.component.model');
    JLoader::import( 'llp','components' . DS . 'com_llp_service' . DS . 'models' );
    JLoader::import( 'opc','components' . DS . 'com_opc_services' . DS . 'models' );

et obtenir le modèle à l'aide de la méthode getInstance

$actionsModel = JModel::getInstance('trademark', 'BusinessServicesModel'); 

cela donne une erreur fatale, que vous ne pouvez pas utiliser avec JModel :: getInstance,

je souhaite donc connaître la méthode appropriée pour effectuer cette tâche, y compris toutes les fonctionnalités du tableau de bord du client.

3
Ankit Balyan

Essayez JModelLegacy:

$actionsModel = JModelLegacy::getInstance('trademark', 'BusinessServicesModel'); 

Peut-être devrez-vous inclure le fichier modèle s'il n'est pas trouvé:

require_once JPATH_ADMINISTRATOR . '/components/com_llp_service/models/trademark.php';

Remarque: la constante DS n'est pas disponible dans les versions plus récentes de Joomla.

5
fruppel