Joomla、Falang 集成组件...致命错误:在 null 上调用成员函数 getTable()
Posted
技术标签:
【中文标题】Joomla、Falang 集成组件...致命错误:在 null 上调用成员函数 getTable()【英文标题】:Joomla, Falang integrate component... Fatal error: Call to a member function getTable() on null 【发布时间】:2015-08-09 12:43:19 【问题描述】:您好,我在为多语言网站在 Falang 中集成 joomla 的自定义组件时遇到了一些问题
调试我得到了空值:
致命错误:在 null 上调用成员函数 getTable()
object(ContentObject)[183] public '_contentElement' => null
用于集成我的组件的 XML 如下所示:
<?xml version="1.0"?>
<falang type="contentelement">
<name>Members</name>
<author>***.com</author>
<version>1.0.0</version>
<description>Definition for the core Members component</description>
<copyright>***.com</copyright>
<reference>
<table name="chambercommerce_members">
<field type="referenceid" name="id" translate="0">ID</field>
<field type="titletext" name="company_name" translate="1">Company Name</field>
<field type="text" name="country" translate="1">Country</field>
<field type="text" name="benefits_discounts" translate="1">Benefits</field>
<field type="text" name="web" translate="0">Web</field>
</table>
</reference>
<translationfilters>
<frontpage>id</frontpage>
<keyword>company_name</keyword>
<id>id</id>
</translationfilters>
</falang>
我让我的 xml 在我的 joomla 安装中寻找其他的 falang 并且有这个 var_dump。
<em>object(ContentObject)[180] public '_contentElement' => object(ContentElement)[179] public '_xmlFile' => ...</em>
有什么解决办法吗?
调用栈:
( ! ) Fatal error: Call to a member function getTable() on null in C:\xampp2\htdocs\website.com\administrator\components\com_falang\models\ContentObject.php on line 747
Call Stack
# Time Memory Function Location
1 0.0009 134496 main( ) ...\index.php:0
2 0.0741 2216528 JApplicationCms->execute( ) ...\index.php:42
3 0.0741 2216792 JApplicationAdministrator->doExecute( ) ...\cms.php:245
4 0.1535 4563008 JApplicationAdministrator->dispatch( ) ...\administrator.php:159
5 0.1565 4603072 JComponentHelper::renderComponent( ) ...\administrator.php:98
6 0.1614 4636208 JComponentHelper::executeComponent( ) ...\helper.php:332
7 0.1621 4669360 require_once( 'C:\xampp2\htdocs\website.com\administrator\components\com_falang\falang.php' ) ...\helper.php:352
8 0.2074 5752552 JControllerLegacy->execute( ) ...\falang.php:78
9 0.2074 5752848 TranslateController->editTranslation( ) ...\legacy.php:722
10 0.2172 6208560 TranslateViewTranslate->display( ) ...\translate.php:245
11 0.2374 6515680 FalangViewDefault->display( ) ...\view.php:80
12 0.2470 6795128 JViewLegacy->display( ) ...\view.php:70
13 0.2470 6795384 JViewLegacy->loadTemplate( ) ...\legacy.php:211
14 0.2499 6900192 include( 'C:\xampp2\htdocs\website.com\administrator\components\com_falang\views\translate\tmpl\edit.php' ) ...\legacy.php:663
15 0.2500 6900664 ContentObject->getTable( )
【问题讨论】:
【参考方案1】:我做到了。
问题:xml 名称应该与数据库表名称相同。所以我重命名为 mytable.xml 并且效果很好
【讨论】:
【参考方案2】:如果您使用Neno Translate,则无需创建内容元素文件,因为它可以直接翻译任何第 3 方组件。它也是专门为 Joomla 3 编写的,并且有很多 Falang 没有的特性。比起法朗,我更喜欢它。
【讨论】:
以上是关于Joomla、Falang 集成组件...致命错误:在 null 上调用成员函数 getTable()的主要内容,如果未能解决你的问题,请参考以下文章
致命错误:在 joomla 3 中调用未定义的方法 JController::getInstance()
Joomla3.6致命错误:require_once():需要打开失败
致命错误:Joomla 中允许的内存大小为 33554432 字节已用尽(尝试分配 32 字节)