【问题标题】:JForm::getInstance could not load fileJForm::getInstance 无法加载文件
【发布时间】:2015-02-03 12:42:48
【问题描述】:

我正在将一个表单组件放入 joomla。我将在其中放置一个文本框、一个编辑器和一个按钮。 我为这个表单创建了视图文件,组件安装成功。但是当我点击在前端显示这个表单时,有一个错误显示如下:

"找不到请求的页面。 处理您的请求时出错。

您可能无法访问此页面,因为:

过时的书签/收藏夹 输入错误的地址 具有此站点过时列表的搜索引擎 您无权访问此页面 进入首页

主页

如果问题仍然存在,请联系本站系统管理员并报告以下错误。

500 JForm::getInstance 无法加载文件" 感谢您的支持

【问题讨论】:

  • 我会检查我的xml文件有没有错误。
  • 您可以提及您为解决它所做的事情。它会帮助其他人。
  • 在我的 xml 文件 (site/components/com_testimonial/models/forms/testimonial.xml) 中,我两次提到“必填”字段。表示创建表单时出错..
  • 这发生在我身上,因为我忘记在我的初始 XML 文件中包含我的 XML 文件夹。

标签: components joomla3.0


【解决方案1】:

1.首先检查您的表单 xml 文件

前端路径:components\com_<name_of_component>\models\forms\<formname>.xml

后端路径:administrator\components\com_<name_of_component>\models\forms\<formname>.xml

示例(Joomla 3.4.3):administrator\components\com_users\models\forms\group.xml

<?xml version="1.0" encoding="utf-8"?>
<form>
    <fieldset>
        <field name="id" type="hidden"
            default="0"
            required="true"
            readonly="true"
        />

        <field name="title" type="text"
            required="true"
            description="COM_USERS_GROUP_FIELD_TITLE_DESC"
            label="COM_USERS_GROUP_FIELD_TITLE_LABEL"
            size="40"
        />

        <field name="parent_id" type="groupparent"
            description="COM_USERS_GROUP_FIELD_PARENT_DESC"
            label="COM_USERS_GROUP_FIELD_PARENT_LABEL"
            required="true"
        />

        <field name="actions" type="hidden"
            multiple="true"
        />

        <field name="lft" type="hidden"
            filter="unset"
        />
        <field name="rgt" type="hidden"
            filter="unset"
        />
    </fieldset>
</form>

2。检查您的模型类

方法getForm()负责加载表单(上面提到的表单xml-file)。

前端路径:components\com_&lt;name_of_component&gt;\models\&lt;modelname&gt;.php

后端路径:administrator\components\com_&lt;name_of_component&gt;\models\&lt;modelname&gt;.php

示例(Joomla 3.4.3):administrator\components\com_users\models\group.php

/**
 * Method to get the record form.
 *
 * @param   array    $data      An optional array of data for the form to interogate.
 * @param   boolean  $loadData  True if the form is to load its own data (default case), false if not.
 *
 * @return  JForm   A JForm object on success, false on failure
 *
 * @since   1.6
 */
public function getForm($data = array(), $loadData = true)
{
    // Get the form.
    $form = $this->loadForm(
        'com_users.group', 
        'group', 
        array(
            'control' => 'jform', 
            'load_data' => $loadData)
        );

    if (empty($form))
    {
        return false;
    }

    return $form;
}

【讨论】:

  • 感谢您对这个问题的贡献,我已经在我的问题评论中提到我得到了这个答案。
  • 不客气。对我来说,xml 文件本身不是问题(它是有效的)。我收到错误是因为我的 getForm() 方法没有以正确的方式实现,所以我添加了这篇文章,以向其他人提示查看包含 getForm() 方法的模型。
【解决方案2】:

检查您的 xml 文件是否正确加载并检查您的视图表单添加任何额外的 xml 表单(如(过滤器)然后检查它是否正确存在于模型/表单文件夹中

【讨论】:

    猜你喜欢
    • 2015-12-09
    • 1970-01-01
    • 2015-10-27
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 2011-12-08
    • 2016-09-10
    相关资源
    最近更新 更多