如何解决此错误:Joomla \ CMS \ Form \ Form :: getInstance()无法加载文件

时间:2019-03-29 13:39:52

标签: forms joomla3.0

我正在研究Joomla组件,遇到一个绝对不知道如何发生,为什么发生以及如何解决的问题。

我有两个视图,显示了来自两个不同数据库表的列表。一种叫做“项目”,另一种叫做“领域”。项目视图正在工作,而字段视图却没有。字段视图中的代码是从项目视图中复制的,并且文件的所有代码(控制器,模型,视图,form.xml,表)都是相同的,除了名称,表名和/或字段名。

在字段视图中触发以下代码时发生错误:

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

以某种方式无法加载(或)表格。

如果我注释掉default.php中的行和过滤器元素所在的部分,它将起作用,但没有过滤器选项。

如果我加载了edit / new视图(字段),则一切正常/显示正确,因此form.xml并不正确/损坏。

我一直在翻阅库文件,但是找不到表单或代码。

以某种方式(但这与该问题无关)我找不到声明JViewLegacy类的文件。

1 个答案:

答案 0 :(得分:0)

Joomla将在models / forms / filter_xxx.xml(例如filter_fields.xml,filter_projects.xml)中寻找过滤器表单的xml定义。你们两个都有xml文件吗?

Joomla团队最近(我认为v3.8或更高版本)更改了许多类名。您可以在libraries / classmap.php中找到旧到新的匹配项,它们在其中设置了旧到新的别名。 JViewLegacy的新名称是Joomla \ CMS \ MVC \ View名称空间中的HtmlView,您可以在library / src / MVC / View中找到源。