2013-02-27 15 views
7

Symfony2'ye nispeten yeniyim ve şimdiye kadar seviyorum - buna karşı durmaya devam ediyorum.Symfony2 Doktrin doktrini: üretmek: varlıklar asla işe yaramaz

(benim için) korkunç: doktrini: oluşturmak: kişiler

Çalıştığım bu komutu alamadım benim ilk Symfony2 projesi başladı ve sadece doktrin kullanarak sona erdi: oluşturmak: varlık yerine para cezası çalıştığı.

Ancak, bu kez veritabanı tablolarına sahip bir sistem için bir uygulama yazmaya çalışıyorum. Talimatları aşağıdaki gibi takip ettim: Symfony2 Docs, her şey iyi gibi görünüyordu.

My

<?php 

namespace My\Bundle\FeedManagerBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Feeds 
* 
* @ORM\Table(name="feeds") 
* @ORM\Entity 
*/ 
class Feeds 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer", nullable=false) 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="IDENTITY") 
    */ 
    private $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="feed_label", type="string", length=100, nullable=false) 
    */ 
    private $feedLabel; 

    /** 
    * @var integer 
    * 
    * @ORM\Column(name="advertiser_id", type="integer", nullable=false) 
    */ 
    private $advertiserId; 

    /** 
    * @var boolean 
    * 
    * @ORM\Column(name="active", type="boolean", nullable=false) 
    */ 
    private $active; 


} 

Ve My/Bundle/FeedManagerBundle/Kaynaklar/config/doktrininde/Bundle/FeedManagerBundle/Varlık/Feeds.php

/Feeds.orm.yml

@ aşağıdaki Varlık dosya
Feeds: 
    type: entity 
    table: feeds 
    fields: 
    id: 
     id: true 
     type: integer 
     unsigned: false 
     nullable: false 
     generator: 
      strategy: IDENTITY 
    feedLabel: 
     type: string 
     length: 100 
     fixed: false 
     nullable: false 
     column: feed_label 
    advertiserId: 
     type: integer 
     unsigned: false 
     nullable: false 
     column: advertiser_id 
    active: 
     type: boolean 
     nullable: false 
    lifecycleCallbacks: { } 

Ve bu alıyorum hatadır: Ben yml dosyasının adını değiştirmeyi denedi

$ php app/console doctrine:generate:entities My/Bundle/FeedManagerBundle/Entity/Feeds --path=src 
Generating entity "My\Bundle\FeedManagerBundle\Entity\Feeds" 



    [Doctrine\Common\Persistence\Mapping\MappingException]                   
    Invalid mapping file 'My.Bundle.FeedManagerBundle.Entity.Feeds.orm.yml' for class 'My\Bundle\FeedManagerBundle\Entity\Feeds'. 



doctrine:generate:entities [--path="..."] [--no-backup] name 

tam yol. Ayrıca, yml dosyasının ilk satırını tam olarak değiştirmeyi denedim ve bu iki şeyi aynı anda yapmayı denedim. Hiçbir şey & çalışacak gibi görünmüyor şimdi saçımı sahneye çekiyorum. Bunun neden işe yaramayacağını herhangi bir sebep düşünebilir mi? için

cevap

13

Değişim Feed.orm.yml:

My\Bundle\FeedManagerBundle\Entity\Feeds: 
    type: entity 
    table: feeds 
    ... 
+0

Wow - Eşleme kodunun başlangıcında eklenmiştir. Hatta My/Bundle/FeedManagerBundle/Entity/Feeds: THANKS'ı da denedim! – someuser

+0

@l_t sorununun çözüldüğüne sevindim – seferov

+0

Burada aynı XML dosya eşleme ile. vardı ve aynı hatayı veriyordu. Bunu olarak değiştirdim ve işe yaradı. Teşekkürler! – a4bike

1

Ben aynı sorunu vardı, ama sorun yoktu. Benim \ Bundle \ FeedManagerBundle \ Varlık \ Aircraft olacaktı: My \ Bundle \ FeedManagerBundle \ Varlık \ Uçağı:

Aslında, varlık, yani adını değiştirmek istedim

(çünkü Tablo, "aircaft": -S)

idi ama dosya adını değiştirmedim. , r aft.orm.yml ("r" ile) için aircaft.orm.yml değiştirdiğimde komut çalışır!

0

Bu sorunu farklı şekilde çözdüm. orm.yml Feeds varlık dosyası bir sorun yaratıyor, bu yüzden resource -> config -> doctrine dan sildim ve daha sonra php app/console doctrine:generate:entities YourBundleName çalıştırdım.

Bu çalışır.

Eşleme bilgilerini, doctrine:mapping:convert görevini kullanarak desteklenen diğer eşleme biçimlerine dönüştürmek isterseniz. Aşağıdaki isim alanını kendi başınıza değiştirin. % 100 çalışıyor.

php app/console doctrine:mapping:convert --namespace="Blogger\BlogBundle\Entity\Blog" yaml src/Blogger/BlogBundle/Resources/config/doctrine 
1

Cevap

sadece bunu, model.php için YML gelen varlıkları oluşturmak için ... hayır 5 saat arama yaptıktan sonra keşfetti. Aşağıdaki kalın yazıya odaklanın. komut:

php app/console doctrine:generate:entities YourAppBundle:ReplaceWithEntityName --path src/ 

sizin model.orm.yml dosya klasöründe olduğundan emin olun

C: \ xyz \ abc ** AppBundle \ Resources \ config \ doktrin ** ve yml dosya vardır Bu referans eşlemede "AppBundle \ Entity \ Book:"

İlgili konular