Cakephp найти содержащийся / связываемый группой - PullRequest
0 голосов
/ 30 марта 2012

У меня есть 3 модели в приложении CakePHP 2.1 Ярлык, категория, продукт.

Продукт связан с категорией и ярлыком через отношение hasOne.

Какой самый эффективный способ использования содержимого или связывания позволяет получить следующую структуру данных.

[Label]
    [Category]
        [Product]

В основном я хочу сгруппировать товары по категориям и категории по ярлыкам.

Единственное решение, которое я мог придумать, заключалось в изменении данных в стиле afterFind путем извлечения продуктов

$this->Product->find('all', array(
    'contain' => array(
        'Category',
        'Label
);

и затем повторение результата с использованием foreach для переформатирования структуры данных для достижения требуемого результата.

1 Ответ

0 голосов
/ 03 апреля 2012

Я не совсем уверен, правильно ли я понял, но, исходя из моего понимания, вот что вы должны сделать.

в соответствующих моделях

Label hasMany Category; // label.php
Category belongsTo Label; // category.php
Category hasMany Product; // category.php
Product belongsTo Category; // product.php

В контроллере продукта, где вы хотите получить эти ассоциации.

$this->Product->Label->recursive = 2;
$this->Product->Label->find('all');

Результирующая структура будет

[Label]
   [Category]
      [Product]
...