Joomla get('Items')及其工作原理


Joomla get('Items') and how it works

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

还有一些其他的事情我不明白是如何工作的......喜欢

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

这些召唤是什么?我查看了"get(("的文档,但它没有说明这些实际上在调用什么,因为我没有看到任何称为getPagination,getState或getItems的方法...看起来get('Items'(以某种方式神奇地调用getListQuery((。

我假设这里有 1.7/2.5+...

在乔姆拉!s 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实现。