1

今晚尝试删除记录时出现奇怪的错误:

Method onlyAllow does not exist

Error: An Internal Error Has Occurred.
Stack Trace

APP/Controller/VendorsController.php line 136 → CakeRequest->__call(string, array)
APP/Controller/VendorsController.php line 136 → CakeRequest->onlyAllow(string, string)
[internal function] → VendorsController->delete(string)
CORE/Cake/Controller/Controller.php line 485 → ReflectionMethod->invokeArgs(VendorsController, array)
CORE/Cake/Routing/Dispatcher.php line 186 → Controller->invokeAction(CakeRequest)
CORE/Cake/Routing/Dispatcher.php line 161 → Dispatcher->_invoke(VendorsController, CakeRequest, CakeResponse)
APP/webroot/index.php line 92 → Dispatcher->dispatch(CakeRequest, CakeResponse)

无法弄清楚发生了什么 - 删除方法直接从蛋糕烘烤中取出。我唯一的猜测是 http 文档根目录的权限太紧了,但这似乎有点牵强。没有 httpd 错误。使用管理员前缀和不使用管理员前缀都会发生这种情况。

4

2 回答 2

3

我遇到了同样的问题。经过一番挖掘,我意识到我已经改变了我的环境以使用更新版本的 CakePHP (2.3.0)。但是,我正在烘焙的项目是(2.2.3)。所以,看起来在 Cake 2.2.x 和 2.3.x 之间他们改变了一些东西。

为了修复在我的 2.2.x 项目中使用 2.3 烘焙的控制器,我最终从控制器的删除功能中删除了这一行......

$this->request->onlyAllow('post', 'delete');

然后我将其替换为函数顶部的以下内容......

if (!$this->request->is('post')) {
    throw new MethodNotAllowedException();
}

注意:您可以通过查看 /lib/Cake/VERSION.txt 文件找到您的应用程序使用的 CakePHP 版本。

于 2013-04-03T12:28:19.343 回答
0

似乎 Vendor 是一个保留字。重命名控制器、模型和视图工作正常。

于 2013-03-22T06:45:28.403 回答