+ -
当前位置:首页 → 问答吧 → TP的跨库关联是怎么处理的?

TP的跨库关联是怎么处理的?

时间:2011-10-09

来源:互联网

  1. <?php
  2. class ShopClientsModel extends RelationModel
  3. {
  4.         protected $trueTableName = 'db.`shop_clients`';
  5.        
  6.         protected $_link = array(
  7.                 'Shops'        =>        array(
  8.                         'class_name'        =>        "Shops",
  9.                         'mapping_type'        =>        BELONGS_TO,
  10.                         'foreign_key'        =>        'shop_id',
  11.                 ),
  12.                
  13.                 'Clients'        =>        array(
  14.                         'class_name'        =>        "Clients",
  15.                         'mapping_type'        =>        BELONGS_TO,
  16.                         'foreign_key'        =>        'client_id',
  17.                 ),
  18.         );
  19. }
  20. ?>
复制代码
这里的Shops和Clients都是一个高级模型,放在不同的数据库上。

现在通过TP进行关联,查询的数据库是主配置文件中的表,也就是没有调用高级模型中的dbname和trueTableName。
  1. [ 2011-10-10T02:06:12+08:00 ] SQL: SHOW COLUMNS FROM think_shops [ RunTime:0.000300s ]
  2. [ 2011-10-10T02:06:12+08:00 ] SQL: SELECT * FROM `think_shops` WHERE 1=1 AND id='1' LIMIT 1 [ RunTime:0.000100s ]
  3. [ 2011-10-10T02:06:12+08:00 ] SQL: SHOW COLUMNS FROM think_clients [ RunTime:0.000267s ]
  4. [ 2011-10-10T02:06:12+08:00 ] SQL: SELECT * FROM `think_clients` WHERE 1=1 AND id='13' LIMIT 1 [ RunTime:0.000091s ]
  5. [ 2011-10-10T02:06:12+08:00 ] SQL: SELECT * FROM `think_shops` WHERE 1=1 AND id='3' LIMIT 1 [ RunTime:0.000084s ]
  6. [ 2011-10-10T02:06:12+08:00 ] SQL: SELECT * FROM `think_clients` WHERE 1=1 AND id='14' LIMIT 1 [ RunTime:0.000075s ]
复制代码

作者: vus520   发布时间: 2011-10-09

这个问题纠结了好长时间,跨库关联好像就没有成功过。

用视图虽然能解决这个问题,但有问题遇到还真是想解决。

这里应该查询的表是db.shops和db.clients

作者: vus520   发布时间: 2011-10-09