it-swarm.com.de

Einschließlich mehrerer Modelle zum Anzeigen oder Steuern von verschiedenen Controllern

Ich entwickle eine "Customer Dashboard" -Komponente in Joomla 3.2.
Ich muss mehrere Modelle verschiedener anderer Komponenten einschließen, die ich erstellt habe. Ich habe versucht, setModel gemäß den Ansichten in controller einzuschließen. Hier ist mein businessservices controller

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);
        }
}

außerdem habe ich versucht, Folgendes einzubeziehen:

 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' );

und Abrufen des Modells mit der Methode getInstance

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

es gibt einen schwerwiegenden Fehler, den JModel :: getInstance nicht verwenden kann.

daher möchte ich einen geeigneten Weg kennen, um diese Aufgabe zu erledigen, einschließlich aller Funktionen des Kunden-Dashboards.

3
Ankit Balyan

Versuchen Sie JModelLegacy:

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

Möglicherweise müssen Sie die Modelldatei hinzufügen, wenn sie nicht gefunden wird:

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

Bitte beachten Sie: Die Konstante DS ist in neueren Joomla-Versionen nicht verfügbar.

5
fruppel