JoomlaコンポーネントはMVCモデルを使用します。 Component Creatorは、有料のレベルでSQLインポートによるマルチ・タブル・ビューの作成をサポートする、広く使用されているツールです。また、開発者は、Joomlaのドキュメントに従って最初からコンポーネントをビルドします。コンポーネントクリエーターで構築されたJoomla 3.xコンポーネントの複数のモデルを1つのビューに含めるには
Joomlaのすべての管理者バックエンドと訪問者のフロントエンドCRUD(CREATE、READ、UPDATE、DELETE)機能を備えた複数のデータベーステーブルからのデータを表示する「ダッシュボード」として機能する高度なコンポーネントを構築したいと考えています。これは、画面上に表示された複数のデータベーステーブルから複数のモデル(MVC哲学から)を引き出す必要があることを意味します。同時に。後で次いで
$view = $this->getView('model-a', 'html');
$view->setModel($this->getModel('model-a'), true);
$view->setModel($this->getModel('model-b'));
$view->display();
とビューで表示方法を用いてそれらのモデルを呼び:
DocumentationJoomlaのは、次のコードは、利用可能な情報を作るために「コントローラタスク法」に挿入することを示唆しています
$item1 = $this->get('data1');
$item2 = $this->get('data2', 'model-b');
しかし、Joomlaのマニュアルに記載されているこれらの指示は、提供されているJoomla Hello World Tutorialチュートリアルまたはwidelから構築されたコンポーネントに従うときに構築されたコンポーネントとは不十分または互換性がありません使用され、一般的なComponent Creatorツールです。コンポーネントが呼び出されたときにページを読み込まないか、単純なコピーでビューにデータを渡してコンポーネントクリエーターまたはJoomla hello worldチュートリアルで作成した複数のコントローラーのいずれかにペーストしません。
Joomla 3.Xコンポーネントの複数のモデルを同じビューで呼び出すにはどうすればよいですか?
この$ model = JModel :: getInstance( 'MODEL_NAME'、 'COMPONENT_NAME')を使用して、ビュー内の任意のモデルを呼び出すことができます。 $ items = $ model-> getItems(); –
@Amit Ray 'JModel'は動作しませんが、' JModelLegacy'はJoomla 3.5.1で動作します( 'JModelLegacy'はJoomla!3.5.1で動作します) 。 'JModel'を使用すると、サーバログに次のエラーが発生します。PHP致命的なエラー:/ var/www/html/components/com_componentname/views/multiviewname/viewの未定義のメソッドJModel :: getInstance()を呼び出します。 html.php'。 JModelLegacyはエラーをスローせず、ページは正常にロードされます。 –
私の間違い申し訳ありませんが、私は遺産の部分を忘れました。しかし、それは問題を解決しましたか? –