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

时间:2012-12-13 14:07:43

标签: joomla joomla2.5

我试图在后端组件默认视图(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

当我将此自定义字段加载到表单中时,一切都很完美。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分: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

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