Doktrin generateModelsFromDb kullanarak db nm ilişkilerini tespit etmek mümkün mü?

1 Cevap php

Modeller Doktrini oluşturmak için generateModelsFromDb kullanarak ilişki Tablo ve bunun yerine temel tablolar kendileri arasında bir nm-ilişkisini üreten temel tablolar arasında birçok ilişkiler birini yaptığında. GenerateModelsFromDb nm ilişkiyi algılamak izin için herhangi bir yolu var mı?

1 Cevap

Sen YAML ile, DB tasarım yapabilirsiniz. Eğer böyle bir şey (bir köpek daha sahip birden fazla sahibi ve sahipleri ile köpekler hakkında bir aptal örnek gösterir) yapmanız gereken bir NM ilişki yapmak istiyorsanız

---
options:
    type: INNODB
    collate: utf8_unicode_ci
    charset: utf8

Human:
    columns:
        id:
            type: integer(4)
            primary: true
            autoincrement: true
        name:
            type: varchar(64)
            notnull: true
        ...
        ...
    relations:
        Dogs:
            foreignAlias: Humans
            class: Dog
            ref_class: Human_Dogs
Dog:
    columns:
        id: 
            type: integer(4)
            autoincrement: true
            primary: true
        owner:
            type: varchar(64)
            notnull: true
        ...
        ...
    relations:
        Humans:
            foreignAlias: Dogs
            class: Human
            ref_class: Human_Dogs
Human_Dogs:
    columns: 
        human_id:
            type: int(4)
            primary: true
        dog_id: 
            type: int(4)
            primary: true
    relations:
        Human:
            foreignAlias: Human_Dogs
        Dog:
            foreignAlias: Human_Dogs

Bu file.yml olacak, yani şimdi bu dosyadan DB üretebilirsiniz. Bunu yapabilir yolu ile çalışan çerçeve veya programının çok bağlıdır. Zaten burada PHP + Doktrini bunu yapmak için basit bir yolu var:

<?php 
$options = array(
      'packagesPrefix'  =>  'Plugin',
      'baseClassName'   =>  'MyDoctrineRecord',
      'suffix'          =>  '.php'
);

Doctrine_Core::generateModelsFromYaml('/path/to/file.yml', '/path/to/model', $options);
?>

Doğru yapılandırma ile id alanını autogenerate olabilir.

Bu linkte bir öğretici var -> Documentation

Bu size yardımcı olur umarım!