操作未在控制器cakephp中定义

时间:2014-04-21 16:31:58

标签: url cakephp

我在使用findbyid为我的共享主机上的页面获取唯一网址时遇到此问题。我遇到的问题是,在尝试通过共享主机上的项目的Id号访问唯一页面时,我一直收到以下错误(我在localhost上没有这个问题):

 Error: The action item is not defined in controller ProductsController
Error: Create ProductsController::item() in file: app/Controller/ProductsController.php.

但是item在productscontroller中定义:

     public function item($id = null) {

    if (!$id) {
        throw new NotFoundException(__('product not found'));
    }

    $items = $this->Product->findById($id);


    if (!$items) {
        throw new NotFoundException(__('Invalid post'));
    }
    $this->set('item', $items);
}

您可以在此网址查看问题:http://entourmag.com/hava/products/item/39

它通过wamp在localhost上工作,所以我不确定是什么问题。

提前致谢

3 个答案:

答案 0 :(得分:0)

好吧我弄明白了这个问题。问题出在上传的文件中;上传的文件不完整或丢失,当我检查ProductsController.php文件时,我意识到大部分代码都丢失了。重新上传解决了这个问题。

对于网络连接有问题的其他人,请在编码时注意这一点。

答案 1 :(得分:0)

错误:使用" Mysql"的数据库连接丢失或无法连接。
数据库服务器返回此错误:SQLSTATE [HY000] [1045]访问被拒绝用户&root;' @' localhost' (使用密码:否)

注意:如果要自定义此错误消息,请创建app / View / Errors / missing_connection.ctp

我认为你还没有在app / Config中创建/配置你的database.php

答案 2 :(得分:0)

我正在使用cakephp 3.8,并且找出了导致这种消息的一种可能原因。

就我而言,我期望__construct方法负责创建基类。

解决方案是使用initialize方法,如下所示:

function initialize() {
  parent::initialize();
}

最后,我们应该更仔细地阅读文档,其中明确说明了here,请花点时间做20 min cms tutorial