我是Cake PHP的新手。我正在尝试运行我最近下载的应用程序,但它不起作用。
我的debug.log文件显示:2012-07-31 12:31:47调试:通知(8):未定义的偏移量:在[C:''wamp''www''app''models''vwbrowse.php,第78行]中为0
以及我的error.log文件:2012-07-31 12:31:47警告:警告(2):array_keys()期望参数1为数组,在[C:''wamp''www''app''models''vwbrowse.php,第78行]中给定null
最后,这是导致问题的功能:
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]);**
怎么了?提前感谢您的解决方案。
检查$results
是否不是数组,然后告诉脚本对其执行array_keys()
。不计算。
此外,您试图在未确认第0
个索引存在的情况下访问$results[0]
。
先试试这个:
if (array_key_exists(0, $results)) { ... }
undefined index
错误表示数组的索引(在您的情况下为[0]
)未定义。
您正在检查$results
是否是包含if (!is_array($results))
的数组,但不检查它是否有任何数据。尝试将其更改为if (!is_array($results) || (count($results) == 0))
。