注意:尝试在第169行的../libraries/src/UCM/UCMType.php中获取非对象的属性

问题描述 投票:1回答:1

当我试图安装Joomla!扩展JCH,我在完成安装后想出了上面的标题信息。我问开发人员,他回复说我不必担心扩展,因为这是Joomla!问题是它不会影响扩展的工作方式。

UCMType.php的第169行如下:

$tableNameFromType = $tableFromType->special->prefix . $tableFromType->special->type;

以及包含第169行的UCMType.php的特定部分:

public function getTypeByTable($tableName)
    {
        $query = $this->db->getQuery(true);
        $query->select('ct.*');
        $query->from($this->db->quoteName('#__content_types', 'ct'));

        // $query->where($this->db->quoteName('ct.type_alias') . ' = ' . (int) $typeAlias);
        $this->db->setQuery($query);

        $types = $this->db->loadObjectList();

        foreach ($types as $type)
        {
            $tableFromType = json_decode($type->table);
            $tableNameFromType = $tableFromType->special->prefix . $tableFromType->special->type;

            if ($tableNameFromType === $tableName)
            {
                return $type;
            }
        }

        return false;
    }
php joomla joomla-extensions
1个回答
0
投票

你真的不必过多关注这个问题,所以第三方扩展开发人员就是这样。这更像是一个小错误(因此通知就在那里),而不是一个严重的错误。您的网站将运行没有问题。

正如您在本通知中看到的那样,在foreach(){}循环中,尝试从另一个不是Object的变量定义变量,因此它最有可能返回一个NULL值或另一个TYPE,它没有Object属性是什么预计在那里。

在这个特殊情况下,整个事情发生在一个相对较新的Joomla核心类和接口(UCM和UCMType)中。在这个类中,他们希望按表定义内容类型,这部分代码必须由核心Joomla开发人员进行修改和改进。

你该怎么办?

1.如果你想帮助Joomla和你自己的发展一点,那么请在这里报告这个问题:https://developer.joomla.org/tracker.html,他们将最有可能检查和修复。

2.此PHP(错误)通知通常适用于开发人员,因此如果您的站点是实时站点,则基本上不应该看到此通知。如果您在实际网站上看到此信息,则可能意味着您的Joomla错误报告设置不正确,或者您的服务器错误报告默认设置不正确。

在您的Joomla管理员系统 - >全局配置 - >服务器 - >错误报告必须设置为系统默认值或无。因此,对于您网站的访问者,这些不相关的通知不会显示。仅当您的站点不是实际站点并且您在分段副本中进一步开发时,才建议使用其他设置。

如果您有Joomla问题,请访问Joomla Stack Exchange:https://joomla.stackexchange.com/questions,请在那里询问有关Joomla的问题。

我希望上面为你解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.