[英]Joomla 3 - Custom Component - How to access site model from Admin View?
我使用組件創建器為Joomla 3生成了自定義組件。在“管理員”面板中有一個視圖,該視圖需要前端模型中的功能。
我已經進行了幾天的Google搜索,試圖找到合適的答案,這是我最近收到的有效回復:
如何在使用Component Creator構建的Joomla 3.x組件的一個視圖中包含多個模型
但是,在該響應中,他似乎正在使用其他站點視圖中的站點視圖模型。
以下是有關我的組件結構的一些信息:
名稱:com_stargazer
管理員檢視:電子郵件
index.php?option = com_stargazer&view = email&layout = test /administrator/components/com_stargazer/views/email/tmpl/test.php
網站視圖和模型:返回頁
/components/com_stargazer/models/returnpage.php /components/com_stargazer/views/returnpage/tmpl/default.php
我試圖通過包含路徑來修改我的管理視圖以包括站點模型:
$this->setModel(getModel(JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_stargazer/models', 'returnpageModel')));
$this->setModel(JModelLegacy::getInstance('returnpage', 'stargazerModel'));
// assigns array from the second model to 'ItemsOtherModel.' there is no '$' sign used.
$this->ItemsOtherModel = $this->get('tags','returnpage');
但是,似乎無法從視圖訪問getModel。 (可能只是控制器?)
其他,引用說要修改控制器(注釋中添加了其他引用):
https://docs.joomla.org/Using_multiple_models_in_an_MVC_component
在過去的幾天中,我嘗試了上述參考代碼示例的各種迭代。 。 。 最終,我對要修改哪個控制器感到困惑? 我是否需要修改管理控制器才能使它正常運行,還是站點控制器? 將功能添加到管理模型並在站點視圖上訪問它會更容易嗎?
調試起來也很困難,因為我不知道哪個模型引發了錯誤。 到目前為止,我最好的猜測是,從管理員角度來看,我根本沒有運氣附加到站點模型上。 任何幫助將不勝感激,以解決這個問題。
這是我的第一個問題,所以我希望它很清楚。
我可以澄清是否需要。 提前致謝。
要調用前端或后端模型,可以使用JLoader甚至require_once包括模型文件。 使用JLoader,您可以像這樣在admin視圖中調用模型
JLoader::import('joomla.application.component.model'); //Load the Joomla Application Framework
JLoader::import( 'returnpage', JPATH_SITE . '/components/com_stargazer/models' ); //Call the frontend model directory
$tags_model = JModelLegacy::getInstance( 'returnpage', 'StargazerModel' );//Instantiate the model
$tags = $tags_model->gettags();
您也可以使用require_once
require_once JPATH_COMPONENT_SITE.'/models/returnpage.php';
$tags_model = JModelLegacy::getInstance( 'returnpage', 'StargazerModel' );//Instantiate the model
$tags = $tags_model->gettags();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.