異なるDB間をモデル内でリレーション定義→利用不可

■環境 
 CakePHP 1.3.x 

■やりたいこと
 モデル内で異なるDB間(複数のDB)をリレーションし、
 それぞれのDBのカラムを出力する関数を定義する。
 
■結論
 普通の仕組みではムリ。ハックすればできる(らしい)。
 
■現状の整理
 異なるDB間のリレーション自体ができないわけではない。
 
 異なるDB間のモデルの紐付け(hasManyとか) → ○
 異なるDB間のモデル紐付け後にmodelsに関数作成 → ×(unknown columnと言われる)
 異なるDB間のモデル紐付け後にcontrollersに関数作成 → ○(model以外なら実行可)

■自分が取った対策
 modelsで関数定義はあきらめて、component化した。
 (ファットモデルはあらきめた) 

 【app/config/database.phpの設定】 
  こんな感じで設定 → CakePHP で複数のデータベースを使用する - mallowlabsの備忘録
 
 【app/models/読み込むモデルの設定】
  同上
 
 【app/controllers/components/読み込むコンポーネントの設定】
  ここを参考に異なるDBのカラムを出力する関数を作成
  第12回 コンポーネントの作り方:CakePHPで高速Webアプリ開発|gihyo.jp … 技術評論社 
  
 
 【app/controllers/コントローラの設定】 

  冒頭でこんな感じで呼び出し

  var $useDbConfig = 'userdb';
  var $uses = array('DB1のモデル', 'DB2のモデル';
  var $components = array('DB1とDB2両方を参照する関数を書いたコンポーネント');
 
  そのあと、コンポーネントを呼び出す。
 
■参考資料
 本件についての議論など(ハックすればできるよ的な内容含む)。
 ※日本語での内容は見当たらず
 CakePHP - querying across models with multiple databases and useDbConfig
 cakephp - Association and model data saving problem - Stack Overflow
 Multiple Databases Model Relationship - CakePHP | Google Groups 
 
■補足
 自分がCakePHPの仕組みをあまり分かっていない可能性もあり、
 そもそも、そういう動きをさせない(こういう疑問が出ないのが普通?)のが
 普通かもしれません。