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