wake-up-neo.com

Incluindo vários modelos para visualizar ou controlar de diferentes controladores

Estou desenvolvendo um componente "Painel do cliente" no Joomla 3.2.
Preciso incluir vários modelos de diferentes outros componentes que eu criei. Tentei incluir o setModel conforme as visualizações no controlador, aqui está o meu controlador de serviços de negócios

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

além disso, tentei incluir o uso de:

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

e obtendo o modelo usando o método getInstance

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

está dando algum erro fatal, que JModel :: getInstance você não pode usar,

por isso, quero conhecer uma maneira adequada de executar essa tarefa, incluindo todos os recursos do painel do cliente.

3
Ankit Balyan

Experimente o JModelLegacy:

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

Talvez você precise incluir o arquivo de modelo se ele não for encontrado:

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

Observe: A constante DS não está disponível nas versões mais recentes do Joomla.

5
fruppel