当我在基于CakePHP 1.2.10的应用中使用主题视图时,会出现以下症状:
生成以下警告:
警告(2):array_merge()[function.array-merge]:参数#2不是数组[ROOT \ cakephp \ cake \ libs \ router.php,第754行]
警告(2):extract()期望参数1为数组,给定[ROOT \ cakephp \ cake \ libs \ router.php,第754行]
注意(8):未定义的变量:escape [ROOT \ cakephp \ cake \ libs \ router.php,第930行]
所有这些警告和通知都提到:
[主要] - APP \ webroot \ index.php,第87行
该文件的第87行在以下代码中
if (isset($_GET['url']) && $_GET['url'] === 'favicon.ico') {
return;
} else {
$Dispatcher = new Dispatcher();
$Dispatcher->dispatch($url);//This is line 87
}
if (Configure::read() > 0) {
echo "<!-- " . round(getMicrotime() - $TIME_START, 4) . "s -->";
}
//Here is the end of the file APP\webroot\index.php
?>
我的应用程序包含应用程序目录中的CakePHP库。即我所有应用程序的一个蛋糕。
当我切换到非主题视图时,所有这些警告都消失了。我想知道为什么我会收到这些警告?我怎么能解决它们呢。
答案 0 :(得分:0)
我发现此错误是由于错误调用$ html-&gt; url()方法造成的。我把它称为$ this-&gt; url('/ img / logo.png',“full”),但它应该是$ html-&gt; url('/ img / logo.png',true)。< / p>
调用来自名为head.ctp的元素文件。 以下是完整的比赛警告解释:
array_merge - [internal], line ??
Router::url() - ROOT\cakephp\cake\libs\router.php, line 754
Helper::url() - ROOT\cakephp\cake\libs\view\helper.php, line 177
include - APP\views\themed\slate\elements\head.ctp, line 15 //HERE IS THE Mistaken Call
View::_render() - ROOT\cakephp\cake\libs\view\view.php, line 665
View::element() - ROOT\cakephp\cake\libs\view\view.php, line 342
include - APP\views\themed\slate\layouts\blog.ctp, line 1
View::_render() - ROOT\cakephp\cake\libs\view\view.php, line 665
View::renderLayout() - ROOT\cakephp\cake\libs\view\view.php, line 453
View::render() - ROOT\cakephp\cake\libs\view\view.php, line 387
Controller::render() - ROOT\cakephp\cake\libs\controller\controller.php, line 808
Dispatcher::_invoke() - ROOT\cakephp\cake\dispatcher.php, line 229
Dispatcher::dispatch() - ROOT\cakephp\cake\dispatcher.php, line 193
[main] - APP\webroot\index.php, line 88
Warning (2): extract() expects parameter 1 to be array, null given [ROOT\cakephp\cake\libs\router.php, line 754]
Notice (8): Undefined variable: escape [ROOT\cakephp\cake\libs\router.php, line 930