Joomla 2.5 在组件布局中加载自定义字段致命错误

问题描述 投票:0回答:3

我试图在我的后端组件默认视图(default.php)中加载自定义字段:

JFormHelper::addFieldPath(JPATH_COMPONENT . '/models/fields');
$productType = JFormHelper::loadFieldType('ProductType',false);

$productTypeOptions = $productType->getOptions(); 

但是我遇到了致命错误:

Fatal error: Call to a member function children() on a non-object in xxx\libraries\joomla\form\fields\list.php on line 89

当我将此自定义字段加载到表单中时,一切正常。

有什么想法吗?

php joomla joomla2.5
3个回答
1
投票

确保您在字段中添加正确的路径


0
投票

在您的

$productType->getOptions()
函数中, 尝试删除:
$options = array_merge(parent::getOptions(), $options);


0
投票

好吧,我试图扩展我的同事的上述想法,但它似乎是一个不合适的编辑,然后我把它放在这里:

这对我有用。在您的 getOptions 中,如果您有类似此处找到的 getOptions 的内容 (http://docs.joomla.org/How_to_add_custom_filters_to_component_admin),您将看到以下行:

$options = array_merge(parent::getOptions(), $options);

这就是犯错误的地方。为什么?嗯,我不确定。如果您看到相关文件,您会发现:

foreach($this->element->children() as $option)

所以问题是你在模型父级上调用children(),它似乎没有初始化。为什么需要array_merge?在这里讨论(http://forum.joomla.org/viewtopic.php?f=626&t=782877

我的解释更像是一个肮脏的盲区,但希望它有助于前进。

© www.soinside.com 2019 - 2024. All rights reserved.