Symfony внешний ключ один ко многим

У меня есть две таблицы A (Utenti) и B (Dispositivi); на B есть внешний ключ к A (один Utente->много Dispositivi). Я использовал генератор администратора Symfony. Могу ли я создать ссылку для каждого Utente, в которой перечислены все связанные Dispositivi в представлении Dispositivi. Возможно ли это?

схема.yml

   Dispositivi:
  connection: doctrine
  tableName: dispositivi
  columns:
    id_dispositivo:
      type: integer(4)
      fixed: false
      unsigned: false
      primary: true
      autoincrement: true
    device_id:
      type: string(255)
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false
    tipo:
      type: string(255)
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false
    utente_fk:
      type: integer(4)
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false
  relations:
    Utenti:
      local: utente_fk
      foreign: id_utente
      type: one
Utenti:
  connection: doctrine
  tableName: utenti
  columns:
    id_utente:
      type: integer(4)
      fixed: false
      unsigned: false
      primary: true
      autoincrement: true
    username:
      type: string(255)
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false
    password:
      type: string(255)
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false
    tipo:
      type: string(255)
      fixed: false
      unsigned: false
      primary: false
      notnull: true
      autoincrement: false
  relations:
    Dispositivi:
      local: id_utente
      foreign: utente_fk
      type: many
    Servizi:
      local: id_utente
      foreign: utente_fk
      type: many

person Omega    schedule 23.05.2011    source источник


Ответы (1)


Вот хорошая ссылка на код доктрины:

http://redotheweb.com/2008/07/08/comparing-propel-doctrine-and-sfpropelfinder/ (особенно если fou используется для продвижения.)

Сначала добавьте партиал в файл generator.yml.

Затем сделайте что-то вроде этого:

<?php
    $dispositivis = $utente->Dispositivis;
?>

<?php foreach ($dispositivis as $d): ?>
    <?php echo link_to($d->getTipo(), 'module_name/action_name?id='. $d->getIdDispositivo()) ?><br />
<?php endforeach ?>
person Kevin    schedule 24.05.2011
comment
Я делаю это. У меня есть родственные dispositivis foregn ключи. Моя настоящая проблема в том, что я не могу перечислить все диспозитивы, связанные с Utente. Я пробую dispositivo/list?id_dispositivo=1, но не работает. Другими словами, я хочу фильтровать диспозитивы по их идентификаторам в представлении диспозитивов сгенерированного бэкенда. Я надеюсь, вы понимаете, что я говорю - person Omega; 24.05.2011
comment
Вам нужно будет взглянуть на lib/filters и внести там изменения. Это может помочь: prettyscripts.com/framework/symfony/ - person Kevin; 25.05.2011