插件和核心应用程序之间的Cakephp HABTM连接

插件和核心应用程序之间的Cakephp HABTM连接,cakephp,cakephp-2.2,Cakephp,Cakephp 2.2,我在插件上的模型/表和核心应用程序中的模型/表之间进行HABTM连接时遇到了实际问题 基本上,我的核心应用程序有一个物品模型,我的插件有一个购买模型 一次购买可以包含多个项目 我已经定义了表,我插件中的所有表都有前缀itm_(表示它们正在处理项目) 该插件称为itemServices 联接表是插件的一部分,是itm_购买的项目 HABTM代码为(在核心项目上): 和(在插件中购买时): 我收到SQL错误,因为自动生成的查询试图对连接的一侧使用以下符号 `itm_purchases` AS `it

我在插件上的模型/表和核心应用程序中的模型/表之间进行HABTM连接时遇到了实际问题

基本上,我的核心应用程序有一个物品模型,我的插件有一个购买模型

一次购买可以包含多个项目

我已经定义了表,我插件中的所有表都有前缀itm_(表示它们正在处理项目)

该插件称为itemServices

联接表是插件的一部分,是itm_购买的项目

HABTM代码为(在核心项目上):

和(在插件中购买时):

我收到SQL错误,因为自动生成的查询试图对连接的一侧使用以下符号

`itm_purchases` AS `itemServices`.`Purchase` 
正在创建无效的查询

关于正确的方法有什么想法吗

生成的SQL为(数据库名称已删除)

发现问题,

'itemServices.Purchase' => array(
  'className' => 'itemServices.Purchase',
  'joinTable' => 'itm_purchases_items',
  'foreignKey' => 'item_id',
  'associationForeignKey' => 'purchase_id',
  'unique' => 'keepExisting',
),
实际上应该是:

'Purchase' => array(
  'className' => 'itemServices.Purchase',
  'joinTable' => 'itm_purchases_items',
  'foreignKey' => 'item_id',
  'associationForeignKey' => 'purchase_id',
  'unique' => 'keepExisting',
),
SELECT `itemServices`.`Purchase`.`id`,
       `itemServices`.`Purchase`.`customer_id`,
       `itemServices`.`Purchase`.`agreement_number`,
       `itemServices`.`Purchase`.`total_value`,
       `itemServices`.`Purchase`.`item_count`,
       `itemServices`.`Purchase`.`created`,
       `itemServices`.`Purchase`.`modified`,
       `purchases_items`.`purchase_id`,
       `purchases_items`.`item_id`,
       `purchases_items`.`created`,
       `purchases_items`.`modified`
FROM
        `itm_purchases` AS `itemServices`.`Purchase` 
JOIN 
        `itm_purchases_items` AS `purchases_items`
ON
       (`purchases_items`.`item_id` = 18 AND `purchases_items`.`purchase_id` = `itemServices`.`Purchase`.`id`)
'itemServices.Purchase' => array(
  'className' => 'itemServices.Purchase',
  'joinTable' => 'itm_purchases_items',
  'foreignKey' => 'item_id',
  'associationForeignKey' => 'purchase_id',
  'unique' => 'keepExisting',
),
'Purchase' => array(
  'className' => 'itemServices.Purchase',
  'joinTable' => 'itm_purchases_items',
  'foreignKey' => 'item_id',
  'associationForeignKey' => 'purchase_id',
  'unique' => 'keepExisting',
),