Понимание массива _ids в данных модели CakePHP

Использование CakePHP v3.1 w/Postgres DB. Когда я извлекаю записи с ассоциациями, я часто вижу дополнительный массив _ids. Что-то вроде этого:

    ...
    (int) 26 => [
        'agency_id' => (int) 23,
        'routes' => [
            '_ids' => (int) 2
        ]
    ]

Или иногда:

     '_ids' => Array (
        0 => 1
        1 => 5
        2 => 3
        3 => 4
     )
]

Я хотел бы понять:

  • Как и почему появляются эти магии _ids?
  • Есть ли способ контролировать или предотвращать это поведение?

Ответ 1

Как и почему появляются эти магические _ids?

Свойство _ids обычно поступает из данных запроса. Это может быть оставлено на сущности, если ассоциация не полностью переделана, хотя.

Если вы предоставляете способ воспроизведения _ids, выходящего из ORM, откройте проблему github, поскольку этого не должно происходить.