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

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

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

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

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


答案 1

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

在Joomla!s MVC视图(哪个)自动加载模型(或在J!术语中)作为一个类。contactsContactViewContactsextends JViewcontactsContactModelContactsextends JModelList

视图中的外观,用于从已注册的模型或视图的属性中获取数据。get()

所以;

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

实际上是对模型的调用,该模型在 .ContactModelContactsgetItems()parent

模型文件不实现它自己的 ,因此使用 from 类(可在 中找到)。com_contact/models/contacts.phpgetItems()getItems()JModelList/libraries/joomla/application/component/modellist.php

这反过来又调用 - 没有魔法只是继承。getListQuery()

正在做同样的事情,即。访问模型父级中的实现。$this->get('Pagination')

可能一直回到实现。$this->get('State')JModel


答案 2

推荐