[英]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中,視圖contacts
( ContactViewContacts
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.