1

我是 Cake PHP 的新手。我正在尝试运行我最近下载的应用程序,但它不起作用。

我的 debug.log 文件说: 2012-07-31 12:31:47 调试:注意 (8):未定义的偏移量:0 在 [C:\wamp\www\app\models\vwbrowse.php,第 78 行]

而我的 error.log 文件:2012-07-31 12:31:47 警告:警告(2):array_keys() 期望参数 1 为数组,在 [C:\wamp\www\app\models\vwbrowse 中给出 null .php,第 78 行]

最后这是导致问题的功能:

function afterFind($results, $primary)
{
    if(!$primary) return $results;

    $ret = array();

    //we are primary and not part of an associated find
    if(!is_array($results)) //find first
    {
        $tables = array_keys($results);
        $record = array();
        foreach($tables as $table){
            $record = array_merge($record,$result[$table]);
        }
        $ret['Vwbrowse'] = $record;

    }else{ //merge all arrays if separated
        $tables = array_keys($results[0]);
        foreach($results as $result){
            $record['Vwbrowse'] = array();
            foreach($tables as $table){
                $record['Vwbrowse'] = array_merge($record['Vwbrowse'],$result[$table]);
            }
            $ret[] = $record;
        }
    }

    return $ret;
}

**这是第 78 行:$tables = array_keys($results[0]); **

怎么了?提前感谢您的解决方案。

4

2 回答 2

2

$results 您正在检查IS NOT是否是一个数组,然后告诉您的脚本对其执行array_keys()。不计算。

此外,您尝试在$results[0]未确认0th 索引存在的情况下进行访问。

先试试这个:

if (array_key_exists(0, $results)) { ... }
于 2012-07-31T12:45:26.350 回答
0

undefined index错误是说明数组的索引,在你的情况下是[0]未定义的。

您正在检查是否$results是一个带有 的数组if (!is_array($results)),但不是它是否有任何数据。尝试将其更改为if (!is_array($results) || (count($results) == 0)).

于 2012-07-31T12:45:27.380 回答