У меня есть две таблицы: Siteaddress
и Jobsheet
. В таблице Jobsheet
есть поле с именем siteaddress
, которое содержит идентификатор адреса сайта, хранящегося в таблице Siteaddress
.Соедините две таблицы, используя указанные поля в CakePHP
Проблема, которую я имею, что в то время как я делаю объединение в контроллере, CakePHP вступает в Siteaddress
таблицу в Jobsheet
таблицы с использованием id
полей в обеих таблицах. Это вызывает проблему, так как в таблице Siteaddress
есть только одна запись и несколько записей в таблице Jobsheet
.
Мне нужно сделать, чтобы CakePHP присоединился к Jobsheet.siteaddress
до Siteaddress.id
вместо того, как он работает в данный момент.
Как я могу это сделать?
Ниже приведен код отношения из файла Jobsheet
модели:
public $hasOne = array(
'Company' => array(
'className' => 'Company',
'foreignKey' => 'id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Siteaddress' => array(
'className' => 'Siteaddress',
'foreignKey' => 'id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
Ура!
Я установил его в 'siteaddress', но затем возвращается с ошибкой:' Колонка не найдена: 1054 Неизвестный столбец 'Siteaddress.siteaddress' in 'on clause'' – mickburkejnr
Ах, вы правы. В этом случае 'hasOne' может и не быть той ассоциацией, которую вы ищете. Определение ассоциации '$ belongsTo' с' siteaddress' 'foreignKey' может быть лучшим вариантом. – mensch
Использование '$ принадлежит. Большое спасибо! – mickburkejnr