Присоединяемая проблема: Неизвестное свойство записи / связанный компонент - PullRequest
0 голосов
/ 21 сентября 2011

Я пытаюсь объединить две таблицы, но с ошибкой:

Unknown record property / related component "price" on "Item"

Это мой DQL:

    $q = Doctrine_Query::create()
        ->select('i.id, i.product_id, p.price')
        ->from('Item i')
        ->innerJoin('i.priceItem p')
        ->where('i.id = ?', $request->getParameter('id'))
        ->andWhere('p.currency_code = ?', $request->getParameter('currency_code'));

    $this->item = $q->execute();

    foreach($this->item as $item) {

        var_dump($item->getId());
        var_dump($item->getProductId());
        var_dump($item->getPrice()); // This line is causing the error

    }

и схема:

Item:
  actAs:
    Timestampable: ~
  columns:
    name: { type: string(255), notnull: true }
    product_id: { type: string(255), notnull: true }

Price:
  actAs:
    Timestampable: ~
  columns:
    currency_code: { type: string(3), notnull: true }
    item_id: { type: integer, notnull: true }
    price:  { type: float, notnull: true }
  relations:
    Item: { onDelete: CASCADE, local: item_id, foreign: id, foreignAlias: priceItem }

Скажите, пожалуйста, что я делаю не так?

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

попробуй как показано ниже var_dump($item->Price->getPrice());

getPrice() является собственностью базового класса доктрины цен, а не класса предметов

0 голосов
/ 21 сентября 2011

цена является свойством / полем Цена объект, а не Элемент . Элемент относится к Цена через псевдоним priceItem . Тогда:

$item->priceItem['price']

Более подробную информацию можно найти здесь .

...