簡體   English   中英

Joomla得到('項目')以及它是如何工作的

[英]Joomla get('Items') and how it works

我正在查看/administrator/components/com_contact/views/contacts/view.html.php的第34行,其中顯示$this->items = $this->get('Items'); 我不明白的是,實際上是如何在/administrator/components/com_contact/models/contacts.php的第123行調用protected function getListQuery()

還有其他一些我不明白的工作方式......就像

$this->pagination   = $this->get('Pagination');
$this->state        = $this->get('State');

這些叫什么? 我看了一下“get()”的文檔,但它沒有說明這些實際調用的內容,因為我沒有看到任何名為getPagination,getState或getItems的方法......看來get('Items')是某種方式神奇地調用getListQuery()。

我假設這里有1.7 / 2.5 + ......

在Joomla!的MVC中,視圖contactsContactViewContacts extends JView )自動加載模型contacts (或J!術語ContactModelContacts ),它作為類extends JModelList

get()在視圖中查找以從注冊的模型或視圖的屬性獲取數據。

所以;

$this->items = $this->get('Items');

實際上是對模型ContactModelContacts的調用,它在parent具有匹配的getItems()

模型文件com_contact/models/contacts.php沒有實現它自己的getItems() ,因此使用了來自JModelList類的getItems() (可在/libraries/joomla/application/component/modellist.php找到)。

這反過來調用getListQuery() - 沒有魔法只是繼承。

$this->get('Pagination')正在做同樣的事情,即。 訪問模型父級中的實現。

$this->get('State')可能會一直回到JModel實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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