Я создаю приложение для торта php 3. Моя модель приложения включает в себя 3 таблицы (среди прочих):Создание ассоциации с условием использования другой ассоциации в CakePHP 3
- Структуры
- MeasuringPoints
- DeviceTypes
где каждая Страница данных может иметь несколько MeasuringPoints:
// StrcuturesTable.php
...
public function initialize(array $config)
{
parent::initialize($config);
...
$this->hasMany('MeasuringPoints', [
'foreignKey' => 'structure_id'
]);
}
Кроме того, каждые измерительная точка относится к определенному типу устройства:
// MeasuringPointsTable.php
...
public function initialize(array $config)
{
parent::initialize($config);
...
$this->belongsTo('DeviceTypes', [
'foreignKey' => 'device_type_id',
'joinType' => 'INNER'
]);
}
Для чего я ищу, как создать ассоциацию «SpecialMeasuringPoints» в таблице «Структура».
Несколько как:
// MeasuringPointsTable.php
...
$this->hasMany('SpecialMeasuringPoints',[
'className' => 'MeasuringPoints',
'foreignKey' => 'structure_id',
'conditions' => ['MeasuringPoints.DeviceTypes.id'=>1]
]);
Как вы можете видеть, я хочу только те точки измерения, чей соответствующий тип устройства имеет идентификатор 1. Однако предыдущее условие объединения не является действительным; и я не знаю, как правильно это реализовать.
Любая помощь приветствуется.
Спасибо за исчерпывающий ответ. В настоящее время я применил обходной путь для этого, но я обязательно попробую его с помощью пользовательского поиска! –