Я разрабатываю сайт эскорта, в котором у эскорта большое количество атрибутов, я хочу использовать одну таблицу для всех, я не могу сохранить эти отношения.
Таблица атрибутов выглядит так:
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| value | varchar(255) | NO | | NULL | |
| category | varchar(255) | NO | | NULL | |
| created | datetime | NO | | NULL | |
| modified | datetime | NO | | NULL | |
+----------+--------------+------+-----+---------+----------------+
Значения в этой таблице похожи на это:
+----+---------------------+----------------+---------------------+---------------------+
| id | value | category | created | modified |
+----+---------------------+----------------+---------------------+---------------------+
| 1 | White | Ethnicities | 2019-09-19 00:00:00 | 2019-09-19 00:00:00 |
| 2 | Blond | hairColors | 2019-09-20 00:00:00 | 2019-09-20 00:00:00 |
| 3 | p | Manequins | 2019-09-20 00:00:00 | 2019-09-20 00:00:00 |
| 4 | Short | hairHeights | 2019-09-20 00:00:00 | 2019-09-20 00:00:00 |
| 5 | Brunette | Ethnicities | 2019-09-23 00:00:00 | 2019-09-23 00:00:00 |
| 6 | Hotel | Places | 2019-09-23 00:00:00 | 2019-09-23 00:00:00 |
| 7 | Own Place | Places | 2019-09-23 00:00:00 | 2019-09-23 00:00:00 |
+----+---------------------+----------------+---------------------+---------------------+
attribute_escorts Таблица выглядит так:
+--------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| escort_id | int(11) | NO | | NULL | |
| attribute_id | int(11) | NO | | NULL | |
+--------------+---------+------+-----+---------+----------------+
Что япытаюсь сделать: Я ищу способ связать таблицы таким образом на EscortsTable.php:
$this->hasOne('Ethnicities', [
'className' => 'attributes',
'foreignKey' => 'escort_id',
'targetForeignKey' => 'attribute_id',
'conditions' => [
'category' => 'Ethnicities'
]]);
$this->belogsToMany('Places', [
'className' => 'attributes',
'foreignKey' => 'escort_id',
'targetForeignKey' => 'attribute_id',
'conditions' => [
'category' => 'Places'
]]);
Таким образом, я могу получить некоторые данные на контроллере Escorts:
$ethnicities = $this->Escorts->Ethnicities->find('list');
Но не удается сохранить при добавлении нового эскорта .. Ничто не заполнено на attribute_escorts.
Есть способ сделать это?Или мне нужно будет создать таблицу для каждого атрибута?
Спасибо!