Как решить эту ошибку: Joomla \ CMS \ Form \ Form :: getInstance () не может загрузить файл - PullRequest
0 голосов
/ 29 марта 2019

Я работаю над компонентом Joomla и столкнулся с проблемой, которая абсолютно не представляет, как и почему это происходит и как ее решить.

У меня есть два представления, показывающие список из двух разных БДстолы.Один называется «проекты», а другой - «поля».Представление проектов работает, а представление полей - нет.Код из представления полей копируется из представления проектов, и весь код файлов (контроллер, модель, представление, form.xml, таблица) одинаков, за исключением имен, имени таблицы и / или имени поля.

Ошибка возникает, когда в представлении полей запускается этот код:

$this->filterForm = $this->get('FilterForm');

Каким-то образом он не может загрузить (или) форму.

Если я закомментирую строку ичасть в default.php, где находятся элементы фильтра, она работает, но без параметров фильтра.

Если я загружаю редактируемый / новый вид (поле), все работает / показывает правильно, поэтому файл form.xml неневерный / поврежденный.

Я рылся в файлах библиотеки, но не могу найти ни форму, ни код.

И как-то (но это никак не связано с этой проблемой)Я не могу найти файл, в котором объявлен класс JViewLegacy.

1 Ответ

0 голосов
/ 29 марта 2019

Joomla будет искать xml-определение формы фильтра в models / forms / filter_xxx.xml (например, filter_fields.xml, filter_projects.xml). У вас там есть оба xml-файла?

Команда Joomla недавно (я думаю, v3.8) изменила многие названия своих классов. Найти соответствие между старым и новым можно в файле library / classmap.php, где они устанавливают псевдоним от старого к новому. Новое имя JViewLegacy - HtmlView в пространстве имен Joomla \ CMS \ MVC \ View, и вы найдете источник в библиотеках / src / MVC / View.

...