Небольшая проблема внутреннего соединения с doctrine symfony 1.4

#php #symfony1 #doctrine #doctrine-1.2 #symfony-1.4

#php #symfony1 #doctrine #doctrine-1.2 #symfony-1.4

Вопрос:

Извините, но я действительно не понимаю doctrine. Я думал, что получил, но, думаю, нет, потому что появляется следующая ошибка:

 Unknown relation alias Artikelkategorie
  

Со следующей схемой.yml:

 Artikelkategorie:
connection: doctrine
tableName: artikelkategorie
columns:
id:
  type: integer(4)
  fixed: false
  unsigned: true
  primary: true
  autoincrement: true
superid:
  type: integer(4)
  fixed: false
  unsigned: true
  primary: false
  notnull: true
  autoincrement: false
branche_id:
  type: integer(4)
  fixed: false
  unsigned: true
  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()
                    ->select('p.*, a.*')
                    ->from('portfolio p')
                    ->innerJoin('p.Artikelkategorie a')
                    ->Where('p.markt_id = ? ', array(2))
                    ->Where('a.superid = ?', array(1))
                    ->Where('a.branche_id = ?', array(2))
                    ->execute();
  

И мой 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->getMarktId() ?></a>
<?php endforeach; ?>
  

Почему возникает неизвестное отношение? Что я делаю не так в action.class.php запрос?

Большое спасибо!!!

Craphunter

Ответ №1:

Потому что просто нет связи между портфолио и категорией Artikelkategorie.

Взгляните на соотношение в портфолио. Есть только статья. Также тот факт, что doctrine создает это, кажется немного странным.. Второе отношение, которое вы определили в портфолио, является самореферентным, но в нем нет столбца «zustand_id»