php - 注意:尝试在第 169 行的 ../libraries/src/UCM/UCMType.php 中获取非对象的属性
问题描述
当我尝试安装 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;
}
解决方案
你真的不必对这个问题给予太多关注,所以第三方扩展开发者在这方面是对的。这更像是一个小错误(因此存在通知),而不是严重的错误。您的网站将毫无问题地运行。
正如您在本通知中看到的那样,在foreach(){}
循环中,尝试从另一个不是 Object 的变量中定义一个变量,因此它很可能只是返回一个 NULL 值或另一个没有 Object 属性的 TYPE预计在那里。
在这种特殊情况下,整个事情发生在一个相对较新的 Joomla 核心类和接口(UCM 和 UCMType)中。在这个类中,他们希望按表格定义内容类型,这部分代码必须由核心 Joomla 开发人员进行修改和改进。
你该怎么办?
1.如果您想对Joomla和您自己的开发有所帮助,请在此处报告此问题:https ://developer.joomla.org/tracker.html ,他们很可能会检查并修复此问题。
2.这个PHP(错误)通知通常是给开发者的,所以如果你的网站是一个live site你应该基本看不到这个通知。如果您在实时站点上看到这一点,这可能意味着您的 Joomla 错误报告设置不正确,或者您的服务器错误报告默认设置不正确。
在您的Joomla 管理员中System->Global Configuration->Server->Error reporting必须设置为System Default或None。因此,这些不相关的通知将不会出现给您网站的用户和访问者。仅当您的站点不是实时站点并且您在临时副本中进一步开发时,才建议使用其他设置。
如果您对 Joomla 有疑问,请访问此处的 Joomla Stack Exchange:https ://joomla.stackexchange.com/questions并请在那里询问您有关 Joomla 的问题。
我希望以上内容为您解决了问题。
推荐阅读
- node.js - 使用渲染时将标头发送到客户端后无法设置标头
- arrays - 如何在Ruby中用零填充字符串
- tomcat - 如何将 Valve 添加到 Apache Tomcat 并使用 rewrite.config
- python - Flask-SQLAlchemy sqlite 在 db.session.commit() 上崩溃
- vue.js - 使用Vue.js在for循环中根据条件显示数据对象
- android - 通过命令行运行时,库中的 Android Non Instrumented 测试失败 ./gradlew clean {library_name}:testDebugUnitTest
- visual-studio-code - vscode:使用带有 Fira Code 的字体连字更新到样式集
- c++ - 数组中的最小合数
- c# - C# 创建基类以写入具有不同标题的 CSV 文件,同时从对象读取
- javascript - 浏览器的 JavaScript 和多线程用于异步操作?