繁体   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