Устранение неполадок «Неизвестного свойства записи / связанного компонента» в соединении DQL

#php #symfony1 #doctrine #symfony-1.4

#php #symfony1 #доктрина #symfony-1.4

Вопрос:

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

 Artikel:
connection: doctrine
tableName: artikel
columns:
id:
  type: integer(4)
  fixed: false
  unsigned: true
  primary: true
  autoincrement: true
bezeichnung:
  type: string(255)
  fixed: false
  unsigned: false
  primary: false
  notnull: true
  autoincrement: false
Portfolio:
connection: doctrine
tableName: portfolio
columns:
artikel_id:
  type: integer(4)
  fixed: false
  unsigned: true
  primary: true
  autoincrement: false
markt_id:
  type: integer(4)
  fixed: false
  unsigned: true
  primary: true
  autoincrement: false 
relations:
Artikel:
  local: id
  foreign: zustand_id
  type: many
Portfolio:
  local: id
  foreign: zustand_id
  type: many
  

Мое следующее (краткое) action.class.php файл:

 $this->unt_cat_list = Doctrine_Query::create()
                    ->from('portfolio p')
                    ->innerJoin('p.Artikel a')
                    ->Where('p.markt_id = ? ', array(3))
                    ->andWhere('a.id = ?', array(8))
                    ->execute();
  

Мои последующие gottoSucccess.php файл:

 <?php foreach ($unt_cat_list as $cat_list1): ?>
<a href="<?php echo url_for('shop/category') . '/' . 'id/' . $cat_list1->getMarktId() ?>"><?php echo $cat_list1->getBezeichnung() ?></a>
<?php endforeach; ?>
  

Теперь мой вопрос: я хочу показать столбец «Bezeichnung» (это означает: описание, поэтому это обычный текст). Ошибка появляется в следующем предложении:

Неизвестное свойство записи / связанный компонент «bezeichnung» в «Портфолио»

Он работает с этим массивом (3) и (8), потому что записи в базе данных существуют, поэтому symfony присоединяется, я прав?

Как я могу перечислить столбец «Bezeichnung»? Кто-нибудь может мне помочь?

Ответ №1:

Bezeichnung — это столбец класса Artikel, поэтому вы должны выполнять, и $cat_list1 должно быть портфолио (потому что… Я думаю, что это появляется в вашем предложении from ). Итак, что вам следует сделать, это $cat_list1->getArtikel()->getBezeichnung() (дас ист гермглиш ^^).

Комментарии:

1. Дорогой Грегуар, большое спасибо! Это работает, и теперь я понимаю классы. МНОГО ТАНКОВ!!!