如何在Prestashop php文件中修复此通知?

时间:2016-09-01 08:46:30

标签: javascript php html prestashop prestashop-1.6

我正在运行一个Prestashop网站,一小段文字在我网站的几乎每一页(网站顶部)上都会显示:

Notice: Undefined index: link_rewrite in /srv/http_mysitename/shop/modules/blockcms/BlockCMSModel.php on line 280
Notice: Undefined index: meta_title in /srv/http_mysitename/shop/modules/blockcms/BlockCMSModel.php on line 281

这是我的BlockCMSModel.php:http://codepen.io/Janos/pen/xExGww?editors=1000 →第280和281行是:

        $content[$cmsCategory]['link'] = $context->link->getCMSLink((int)$ids[1], $query['link_rewrite']);
        $content[$cmsCategory]['meta_title'] = $query['meta_title'];

请帮助我,我不是程序员,我只能处理几个html和css的东西。我的办公室同事给了我一个如何隐藏这些通知的建议,但我宁愿解决整个问题。 谢谢。

1 个答案:

答案 0 :(得分:0)

$query = BlockCMSModel::getCMSMetaTitle($ids[1]);中的查询可能返回0行,因此$query为空array(),没有键link_rewritemeta_title

通过添加条件来解决此问题,以处理查询未返回任何行时发生的情况

$query = BlockCMSModel::getCMSMetaTitle($ids[1]); //line 279
if (!$query) {
    // set empty strings when no rows are found in database or change this to
    // whatever you want to do when no rows are found
    $query['link_rewrite'] = '';
    $query['meta_title'] = '';
}
$content[$cmsCategory]['link'] = $context->link->getCMSLink((int)$ids[1], $query['link_rewrite']);
$content[$cmsCategory]['meta_title'] = $query['meta_title'];

或打开文件

config/defines.inc.php

并设置define('_PS_MODE_DEV_', false);

请注意,此设置仅会隐藏您网站上的错误输出。