添加了

时间:2016-08-21 23:13:50

标签: mysql cakephp

我有一个API,可以从表中获取数据,序列化数据,然后通过服务发回。代码是使用CakePHP使用CakePHP编写的。

当我传入表名(例如RX_Scaled)时,返回的错误是找不到表r_x_scaled(这并不让我感到惊讶,数据库中的表名是rx_scaled )。

我的rx_scaled模型/表定义如下

class rx_scaleds extends Table
{
    public function initialize(array $config)
    {
        parent::initialize($config);
        $this->table('rx_scaled');
    }

使用模型/实体

 class rx_scaled extends Entity
 {
 }

我的服务API在APIController.php文件中设置如下

public function getData($tablename, $id="", $filter = "-", $order = "-", $take = 0)
{
    $the_table = $tablename;

    $this->autoRender = false;

    $table = TableRegistry::get($tablename);

    $data = null;

    switch (strtolower($the_table))
    {
        case "rx_scaled":
            $data = $table->find();
            echo $data;
            break;
    }

(这是截断的)

奇怪的是,所有表中都不会出现此错误。

我显然没有正确地做某事,但我不确定是什么

1 个答案:

答案 0 :(得分:0)

您为表格对象rx_scaleds命名,但随后将RX_Scaled传递给getData操作

cake尝试找不到名为RX_Scaled的表对象尝试改变mysql表的名称:所以使用cake的约定RX_Scaled映射到r_x_scaled

那你能做什么?

使用蛋糕约定

为您的表名RxScaledsTable

class RxScaledsTable extends Table

将您的实体命名为RxScaled

class RxScaled extends Entity

并将字符串'RxScaled'传递给您的操作