tv_schedule と vp_record の 2 つのデータベースがあります。vp_record テーブルで設定されたリレーション:
'tv_schedule' => array(self::BELONGS_TO, 'Schedule', 'sch_id'),
関連するレコードを取得しようとすると、うまくいきます:
Record::model()->findByPk(2)->tv_schedule
しかし、dataProvider を形成するための基準を使用している場合、エラーが発生します。
SQLSTATE [42S02]: ベース テーブルまたはビューが見つかりません: 1146 テーブル 'video_processing.tv_schedule' が存在しません。実行された SQL ステートメントは、SELECT COUNT(DISTINCT t
. id
) FROMvideo_processing
です。vp_record
t
LEFT OUTER JOIN tv_schedule
tv_schedule
ON ( t
. sch_id
= tv_schedule
. sch_id
) WHERE (t.tc_id = 22)
$dataProviderRecorded = new CActiveDataProvider('Record', array(
'criteria' => array(
'with' => array('tv_schedule'),
'condition' => 't.tc_id = '.$id,
'together' => true
),
'pagination' => array(
'pageSize' => 20
)
));
ただし、レコードのモデル、およびスケジュール構成済みメソッド CDbGetConnection のモデルでは、次のようになります。
public function getDbConnection()
{
$db = Yii::app()->getComponent('video_processing');
if ($db instanceof CDbConnection)
{
return $db;
}
else
throw new CDbException(Yii::t('yii', 'Active Record requires a "video_processing" CDbConnection application component.'));
}
スケジュール:
public function getDbConnection()
{
$db=Yii::app()->getComponent('iptv_new');
if($db instanceof CDbConnection)
{
return $db;
}
else
throw new CDbException(Yii::t('yii','Active Record requires a "iptv_new" CDbConnection application component.'));
}
ここで何が問題なのですか?