簡體   English   中英

Joomla 3-自定義組件-如何從管理員視圖訪問網站模型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM