У меня есть две модели, Plant и Emp, у которых есть отношение "Имеет и принадлежит многим".Я настроил их для связывания, и запрос на получение данных для каждого из них верный, но проблема в том, что Plant и Emp находятся в разных базах данных.Emp находится в базе данных 1, Plant находится в базе данных 2. Из-за этого они неправильно запрашивают таблицу соединений;таблица соединения находится только в базе данных 1.
Когда модель Plant пытается получить доступ к таблице соединения, она запрашивает базу данных 2, у которой нет этих данных.
Это ассоциация, которую Emp имеет для Plant.
var $hasAndBelongsToMany = array(
'Plant' =>
array(
'className' => 'Plant',
'joinTable' => 'emp_plant',
'foreignKey' => 'employee_id',
'associationForeignKey' => 'LocationID',
'unique' => true,
'conditions' => '',
)
);
Обновление : я попытался установить атрибут "finderQuery", чтобы я мог запрашивать таблицу соединений, ноЯ не знаю, как дать сырой SQL-запрос, подобный этому, и позволить ему динамически использовать идентификатор для экземпляра Модели вместо предопределенного значения.
Я могу установить что-токак
SELECT * FROM [Plant] AS [Plant] JOIN [DB].[DBO].[empplant] AS
[EmpPlant] ON ([EmpPlant].[employee_id] = **4**
AND [EmpPlant].[ID] = [Plant].[LocationID])
Что даст мне правильные данные для одного сотрудника, но я не знаю, как сделать этот искатель запросов динамическим запросом.Должен быть способ, чтобы это сработало.