0

我有一个全新的 git repo CakePHP 应用程序。我刚刚创建了一个新模型(Ingests)来跟踪我们的系统引入的数据。我想创建函数 start() 和 end(),但是 end 受到保护,所以我切换到 begin() 和 finish()。

无论我做什么,CakePHP 都在尝试将模型函数名称逐字执行为 SQL 查询。我在这个应用程序中有另一个模型,我这周一直在研究,根本没有这个问题。今天创建一个新表/模型是问题出现的时候。

摄取控制器.php

public function test(){


    $this->autoRender = false;

    //$result = $this->Ingest->finish();
    $result = $this->Ingest->xyz();

    debug($result);

}

Ingests.php 模型

public function finish($id){

    return 'giraffe';

}

public function xyz(){

    return 'abc';

}

输出:

Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error
in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near 'xyz' at line 1

SQL Query: xyz

我尝试了 xyz(),因为 xyz() 不可能是受保护/不允许的函数名……但显然它与 finish() 一样糟糕。如果我运行 finish() 函数,我会得到相同的输出......“SQL 查询:完成”

4

1 回答 1

2

检查你的文件名,你的文件名模型的名称应该是Ingest.php而不是Ingests.php检查你的类声明:

<?php
App::uses('AppModel', 'Model');

class Ingest extends AppModel { //Make sure the model name is singular

    public function finish($id){

        return 'giraffe';

    }

    public function xyz(){

        return 'abc';

    }
}
于 2013-11-14T17:46:19.180 回答