【问题标题】:Migration from Joomla 2.5 to Joomla 3.4.5 results in strange server error 500从 Joomla 2.5 迁移到 Joomla 3.4.5 导致奇怪的服务器错误 500
【发布时间】:2015-11-19 10:18:33
【问题描述】:

我安装了一个全新的、干净的 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 ConfigHdVViewComponent extends JViewLegacy {}

现在,当我转到 index.php?option=com_confighdv&view=component 时,我得到一个服务器错误 500 :s

我真的不知道该怎么办。非常感谢您的帮助!

【问题讨论】:

  • 在服务器日志中查看确切的错误消息,这可能是您能做的最有启发性的事情
  • 服务器日志中的行(= 正常日志,错误日志为空):------- [19/Nov/2015:11:55:24 +0100] "GET /administrator/ index.php?option=com_confighdv&view=justaname HTTP/1.1" 200 5693 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36" --- -------- 和: -------- [19/Nov/2015:11:56:28 +0100] "GET /administrator/index.php?option=com_confighdv&view=component HTTP/1.1" 500 174 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36"
  • 我怀疑组件已经分配给视图类型。尝试将其更改为comp?或者启用 Joomla!查看php错误的最大错误报告。
  • @XWS 感谢您提示启用 Joomla 的最大错误报告!立即解决了问题(请参阅下面我自己的答案)。真的以为我已经在使用最大错误报告了,因为这就是我在创建扩展时想要的......
  • 您在开发时实际上想要开发 ;-)。不客气!

标签: migration joomla2.5 server-error joomla3.4


【解决方案1】:

解决了!切换到 Joomla 的最大错误报告提供了解释:

致命错误:类 ConfigHdVModelComponent 包含 1 个抽象方法,因此必须在第 18 行的 /xxx/administrator/components/com_confighdv/models/component.php 中声明为抽象方法或实现其余方法 (JModelForm::getForm)

所以,问题不在于视图,而在于属于 Component 视图的模型!

我自己不小心造成了这个问题,将模型声明减少到我认为的绝对最小值:

class ConfigHdVModelComponent extends JModelAdmin
{
{

虽然这是不允许的,因为您总是必须定义getForm 方法,所以:

class ConfigHdVModelComponent extends JModelAdmin
{
    public function getForm($data = array(), $loadData = true)
    {
    }
{

【讨论】:

    猜你喜欢
    • 2012-11-14
    • 2013-09-01
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    相关资源
    最近更新 更多