CakePHP:不同模型和使用的表名的问题

CakePHP:不同模型和使用的表名的问题,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,我遇到了一个问题,我会说 Error: Database table catalog_product_entity for model CatalogProductEntity was not found. 我希望模型MagentoCatalogProductEntity使用表catalog\u product\u entity,但为什么它要查找以我定义的表命名的模型,而不是实际的模型名称,MagentoCatalogProductEntity 我有 magento_catalog_produ

我遇到了一个问题,我会说

Error: Database table catalog_product_entity for model CatalogProductEntity was not found.
我希望模型
MagentoCatalogProductEntity
使用表
catalog\u product\u entity
,但为什么它要查找以我定义的表命名的模型,而不是实际的模型名称,
MagentoCatalogProductEntity

我有

magento_catalog_product_entity.php

class MagentoCatalogProductEntity extends AppModel {
    public $name = 'MagentoCatalogProductEntity';
    public $useTable = 'catalog_product_entity';
    ...
}
class CatalogProductEntity extends AppModel {
    public $name = 'CatalogProductEntity';
    public $useTable = 'catalog_product_entity';
    ...
}
magento_catalog_product_entity_controller.php

class MagentoCatalogProductEntityController extends AppController {
    public $name = 'MagentoCatalogProductEntity';
    ....
}
class CatalogProductEntityController extends AppController {
    public $name = 'CatalogProductEntity';
    ....
}
请注意,如果模型名称和
$useTable
共享相似的名称,它是否会出现一些错误,从而无法正常工作

test.php

class Test extends AppModel {
    public $name = 'Test';
    public $useTable = 'catalog_product_entity';
    ...
}
编辑2013-06-12

我无法找出我上面提供的设置有什么问题。我目前正在使用以下工具。。我真的希望文件和类名中有“magento”前缀,但现在就可以了

catalog\u product\u entity.php

class MagentoCatalogProductEntity extends AppModel {
    public $name = 'MagentoCatalogProductEntity';
    public $useTable = 'catalog_product_entity';
    ...
}
class CatalogProductEntity extends AppModel {
    public $name = 'CatalogProductEntity';
    public $useTable = 'catalog_product_entity';
    ...
}
目录\产品\实体\控制器.php

class MagentoCatalogProductEntityController extends AppController {
    public $name = 'MagentoCatalogProductEntity';
    ....
}
class CatalogProductEntityController extends AppController {
    public $name = 'CatalogProductEntity';
    ....
}

如果Cake忽略了您的
$useTable
属性,那是因为它根本没有加载模型类(文件可能命名错误,或者位于错误的位置)。您可以通过验证CatalogProductEntity模型的类是否为
AppModel
——或者简单地在模型文件中放入一个明显的php错误,并查看它是否会破坏您的应用程序来检查这一点。我尝试过破坏
magento\u catalog\u product\u entity.php
,这会产生一个解析错误,所以它肯定在读取文件。。陛下注意,我在帖子中添加了一个case,其中
$useTable
按预期工作。where?请注意,“您的问题很难理解,例如,
错误:数据库表目录\产品\实体。。。找不到。
请注意,在本例中,存在名为catalog\u product\u实体的表
是矛盾的和令人困惑的。您给出了一个示例模型和控制器,其中您说,“注意这是可行的”,那么为什么不使用该代码呢,你没有解释为什么不能?我不想使用名为
Test
tests
的模型或控制器。在“注意..”部分中,我试图说明,如果我对
$useTable='catalog\u product\u entity'
使用不同的模型和控制器名称,事情就会按预期工作,而如果我对
$useTable='catalog\u product\u entity'
使用类似的模型/控制器名称,CakePHP认为模型名应该是指定要使用的表的大小写。