Joomla get ('Items') и как это работает - PullRequest
16 голосов
/ 06 марта 2012

Я смотрю на строку 34 /administrator/components/com_contact/views/contacts/view.html.php где говорит: $this->items = $this->get('Items'); Я не понимаю, как это на самом деле вызывает protected function getListQuery() на линии 123 из /administrator/components/com_contact/models/contacts.php

Есть также некоторые другие вещи, которые я не понимаю, как работают ... как

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

Каковы эти призывы? Я посмотрел на документацию по "get ()", но там не сказано, что они на самом деле вызывают, потому что я не вижу никаких методов, называемых getPagination, getState или getItems ... Кажется, что get ('Items') как-то магически вызывая getListQuery ().

1 Ответ

35 голосов
/ 06 марта 2012

Я предполагаю, что 1,7 / 2,5 + здесь ...

В MVC Joomla! Представление contacts (ContactViewContacts, extends JView) автоматически загружаетмодель contacts (или в терминологии J! ContactModelContacts), которая как класс extends JModelList.

get() ищет в представлении данные из зарегистрированной модели или свойства представления.

Итак;

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

на самом деле является вызовом модели ContactModelContacts, в которой parent соответствует *1021*.

Файл модели com_contact/models/contacts.php не реализует свой собственный getItems(), поэтому используется getItems() из класса JModelList (находится в /libraries/joomla/application/component/modellist.php).

Это, в свою очередь, вызывает getListQuery() - никакой магии простонаследование.

$this->get('Pagination') делает то же самое, т.е.доступ к реализации в родительском модели.

$this->get('State'), вероятно, возвращается к реализации JModel.

...