Фильтрация данных на основе выбранной строки связанной таблицы в торт 3.x

У меня есть три таблицы:

1 lab_categories (столбцы включают id, category)

class LabCategoriesTable extends Table
{
public function initialize(array $config)
{
parent::initialize($config);

$this->table('lab_categories');
$this->displayField('id');
$this->primaryKey('id');

$this->hasMany('LabTests', [
'foreignKey' => 'lab_category_id'
]);
$this->belongsToMany('Laboratories', [
'foreignKey' => 'lab_category_id',
'targetForeignKey' => 'laboratory_id',
'joinTable' => 'laboratories_lab_categories'
]);
}}

2 лаборатории (столбцы включают id,name)

class LaboratoriesTable extends Table
{

public function initialize(array $config)
{
parent::initialize($config);

$this->table('laboratories');
$this->displayField('name');
$this->primaryKey('id');

$this->hasMany('LabRefValues', [
'foreignKey' => 'laboratory_id'
]);
$this->belongsToMany('LabCategories', [
'foreignKey' => 'laboratory_id',
'targetForeignKey' => 'lab_category_id',
'joinTable' => 'laboratories_lab_categories'
]);
}}

3 laboratories_lab_categories (столбцы включают id, laboratory_id, lab_category_id)

class LaboratoriesLabCategoriesTable extends Table
{
public function initialize(array $config)
{
$this->table('laboratories_lab_categories');
$this->displayField('id');
$this->primaryKey('id');
$this->belongsTo('Laboratories', [
'foreignKey' => 'laboratory_id',
'joinType' => 'INNER'
]);
$this->belongsTo('LabCategories', [
'foreignKey' => 'lab_category_id',
'joinType' => 'INNER'
]);
}}

Я хочу иметь возможность выбрать lab_categories.name связано с указанным laboratory.id чтобы иметь возможность добавить его в вызов ajax, который я создал.
Я хочу сгенерировать результат, аналогичный тому, что сгенерирует этот запрос;
Выберите lab_categories.id, категорию
Из lab_categories
Присоединяйтесь к laboratories_lab_categories
где laboratories_lab_categories.laboratory_id = $ id
AND laboratories_lab_categories.lab_category_id = lab_categories.id

я использую cakephp 3.1 и столы были испечены. У меня есть поиск по связанному вопросу, но не был применим для меня.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …