从 Joomla 2.5 迁移到 Joomla 3.4.5 导致奇怪的服务器错误 500
Migration from Joomla 2.5 to Joomla 3.4.5 results in strange server error 500
我安装了一个全新的、干净的 Joomla 3.4.5,然后安装了一个我自己编写的组件,它在 Joomla 2.5 中工作得很好。然而,在 Joomla 3 中,我收到服务器错误 500...在某些情况下...
我将错误缩小到以下奇怪的情况:
该组件称为 com_confighdv(我正在扩展 Joomla 核心的 com_config)。我添加了一个名为 JustaName 的视图,存在两个文件:
admin/views/justaname/view.html.php:
<?php
class ConfigHdVViewJustaName extends JViewLegacy
{
}
?>
admin/views/justaname/tmpl/default.php:
Hello world!
当我转到 index.php?option=com_confighdv&view=justaname.
时效果很好
然后我将视图的名称从 JustaName 更改为 Component:
- 视图的文件夹变为:admin/views/component/
- Class 声明变为:
class ConfigHdVViewComponent extends JViewLegacy {}
现在,当我转到 index.php?option=com_confighdv&view=component 时,我收到服务器错误 500 :s
我真的不知道该怎么办。非常感谢您的帮助!
已解决!切换到 Joomla 的最大错误报告提供了解释:
Fatal error: Class ConfigHdVModelComponent contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (JModelForm::getForm) in /xxx/administrator/components/com_confighdv/models/component.php on line 18
所以,问题不在视图中,而是在属于组件视图的模型中!
我自己不小心造成了这个问题,将模型声明减少到我认为的绝对最小值:
class ConfigHdVModelComponent extends JModelAdmin
{
{
虽然这是不允许的,因为你总是要定义getForm
方法,所以:
class ConfigHdVModelComponent extends JModelAdmin
{
public function getForm($data = array(), $loadData = true)
{
}
{
我安装了一个全新的、干净的 Joomla 3.4.5,然后安装了一个我自己编写的组件,它在 Joomla 2.5 中工作得很好。然而,在 Joomla 3 中,我收到服务器错误 500...在某些情况下...
我将错误缩小到以下奇怪的情况:
该组件称为 com_confighdv(我正在扩展 Joomla 核心的 com_config)。我添加了一个名为 JustaName 的视图,存在两个文件:
admin/views/justaname/view.html.php:
<?php
class ConfigHdVViewJustaName extends JViewLegacy
{
}
?>
admin/views/justaname/tmpl/default.php:
Hello world!
当我转到 index.php?option=com_confighdv&view=justaname.
时效果很好然后我将视图的名称从 JustaName 更改为 Component:
- 视图的文件夹变为:admin/views/component/
- Class 声明变为:
class ConfigHdVViewComponent extends JViewLegacy {}
现在,当我转到 index.php?option=com_confighdv&view=component 时,我收到服务器错误 500 :s
我真的不知道该怎么办。非常感谢您的帮助!
已解决!切换到 Joomla 的最大错误报告提供了解释:
Fatal error: Class ConfigHdVModelComponent contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (JModelForm::getForm) in /xxx/administrator/components/com_confighdv/models/component.php on line 18
所以,问题不在视图中,而是在属于组件视图的模型中!
我自己不小心造成了这个问题,将模型声明减少到我认为的绝对最小值:
class ConfigHdVModelComponent extends JModelAdmin
{
{
虽然这是不允许的,因为你总是要定义getForm
方法,所以:
class ConfigHdVModelComponent extends JModelAdmin
{
public function getForm($data = array(), $loadData = true)
{
}
{