опровергая чужие поля на основе отношений - PullRequest
0 голосов
/ 20 июня 2011

У меня есть следующая схема:

 catalogue:
  actAs: [Timestampable, Sortable]
  columns:
    id:
      type: integer(2)
      primary: true
      autoincrement: true
    catalogue_name:
      type: varchar(255)
  relations:
    catalogue:
        class: Product
        refClass: ProductPrices
        local: catalogue_id
        foreign: product_id
ProductPrices:
  actAs: [Timestampable]
  columns:
    product_id: { type: integer(4)}
    catalogue_id: { type: integer(2) }
    price: { type:real }
  relations:
    Product:    { local: product_id, foreign: id }
    catalogue:  { local: catalogue_id, foreign: id }
  indexes:
    unique_price:  { fields: [catalogue_id, product_id], type: unique }
Product:
  actAs:             [Timestampable]
  columns:
    id:
      type: integer(4)
      primary: true
      autoincrement: true
    product_code:
      type: varchar(10)
    product_desc:
      type: varchar(255)
    created_at:
      type: timestamp
  relations:
    catalogue:
        class: catalogue
        refClass: ProductPrices
        local: product_id
        foreign: catalogue_id

Теперь это отношение многих мужчин между Product и catalogue

Что я хочу сделать,для отображения каждого каталога и его продуктов в виде таблицы HTML.

Я создал компонент и запрос Doctrine:

public static function getPricingTable()
{
    $q = Doctrine_Query::create()
      ->from('ProductPrices p');

   return $q->execute();
}

Теперь моя единственная проблема - это отображение каталогов и продуктов, т.е.

Каталог 1

* Product 1     
* Product 2        
* Product 3

Каталог 2

* Product 1

Вся помощь приветствуется

1 Ответ

0 голосов
/ 20 июня 2011

Если вы хотите получить все продукты каталога, вам просто нужно использовать метод getProduct () экземпляра каталога.

Например, если вы хотите получить все каталоги со всеми продуктами:

$catalogues = Doctrine::getTable('catalogue')->findAll();

foreach($catalogues as $catalogue){
   //$catalogue is an instance
   echo $catalogue->getCatalogueName()

   //you've got all products from a catalogue instance    
   foreach($catalogue->getProduct() as $product){
       echo $product->getProductDesc();
   }
}
...