【问题标题】:Cakephp model not workingCakephp 模型不工作
【发布时间】:2015-02-12 07:35:32
【问题描述】:

目前正在使用 Cakephp 2.x 并遇到以下错误。我们正在升级一个用程序化 php 编写的旧项目,使其具有更多概念。所以我们必须使用没有任何蛋糕约定的现有数据库。目前我面临的问题是数据库中有一个名为 tranz_vehicle 的表。我有一个名为 vehicle.php 的模型,下面是它的代码

<?php
class Vehicle extends AppModel{

    public $useTable="tranz_vehicle";

}
?>

即使我使用了 $useTable,它仍然显示以下错误

在数据源默认值中找不到模型 Vehicle 的表车辆。

我无法修改表名。有什么建议吗?我是 cakephp 的新手

数据库中已经有表用户,我创建了一个模型用户,它运行良好。问题在于 tranz_vehicle 等其他表格

【问题讨论】:

  • 表名必须是车辆的复数,车型名必须是单数
  • @SharmaVikram 我知道该约束,但问题是数据库已经使用该名称创建并且有大量数据。还有很多关键关系。因此无法将表名更改为车辆。这就是为什么我正在寻找使模型指向另一个表的选项。

标签: cakephp model


【解决方案1】:

你的模型文件名是 Vehicle.php 还是 vehicle.php ? 如果它是小写,则意味着您的模型正在动态生成并且无法从文件中读取 useTable,因为它没有使用该文件。 你也可以显示你的表主键吗?如果不是“id”,则必须使用此代码指定它。

public $primaryKey = 'example_id';

【讨论】:

    【解决方案2】:

    别忘了清空 tmp/cache/modelstmp/cache/persistent

    要强制 CakePHP 使用其他数据库,您基本上有两种选择:

    1) 使用表格前缀

    class Example extends AppModel {
    public $tablePrefix = 'alternate_'; // will check 'alternate_examples' table
    

    }

    2) 像你一样使用 $useTable

    class Exemple extends AppModel {
     public $useTable = 'exmp'; // will check 'exmp' table
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多