2015-02-12 107 views
1

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

<?php 
class Vehicle extends AppModel{ 

    public $useTable="tranz_vehicle"; 

} 
?> 

我用$ useTable即使在代码中,它显示的是型号车辆下面的错误

表车辆数据源默认没有被发现。

我不能修改表名..有什么建议吗?我是一个总新手cakephp

也有数据库中的用户表已经和我创建了一个模型用户,它的作品完美。问题是其余的表像tranz_vehicle

+0

表名必须是多个车辆和型号名称必须是单数 – 2015-02-12 07:40:26

+0

@SharmaVikram我知道这个约束,但问题是数据库已经创建了这个名称,并有大量的数据。还有许多重要的关系。所以不可能将表名改为车辆。这就是为什么我正在寻找选项,使模型指向另一个表。 – 2015-02-12 07:43:49

回答

3

是您的车型文件名是Vehicle.php或vehicle.php? 如果它是小写,表示您的模型正在生成,并且不能从文件读取useTable,因为它不使用该文件。 也可以显示你的表主键?如果它不是'id',则必须用此代码指定它。

public $primaryKey = 'example_id'; 
+0

感谢它的完美工作 – 2015-02-12 08:35:37

+0

欢迎您:) – 2015-02-12 08:44:35

0

不要忘记清空TMP /缓存/型号TMP /缓存/持续任何东西之前。

要强制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 

}