it-swarm.dev

複数のモデルを含めて、異なるコントローラーから表示またはコントローラー

Joomla 3.2で「顧客ダッシュボード」コンポーネントを開発しています。
構築した他のさまざまなコンポーネントの複数のモデルを含める必要があります。私はコントローラのビューごとにsetModelを含めようとしました、これは私のbusinessservicesコントローラです

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

また、私は使用することを含めました:

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

getInstanceメソッドを使用してモデルを取得する

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

jModel :: getInstanceを使用できないという致命的なエラーが発生している、

ですから、顧客のダッシュボードのすべての機能を含め、このタスクを実行する適切な方法を知りたいのです。

3
Ankit Balyan

JModelLegacyを試してください:

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

見つからない場合は、モデルファイルを含める必要があります。

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

注意:DS定数は、新しいJoomlaバージョンでは使用できません。

5
fruppel