Использование одной таблицы для хранения разных типов данных / атрибутов в cakephp 3.x - PullRequest
1 голос
/ 25 сентября 2019

Я разрабатываю сайт эскорта, в котором у эскорта большое количество атрибутов, я хочу использовать одну таблицу для всех, я не могу сохранить эти отношения.

Таблица атрибутов выглядит так:

+----------+--------------+------+-----+---------+----------------+
| 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.

Есть способ сделать это?Или мне нужно будет создать таблицу для каждого атрибута?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...