2013-02-27 47 views
7

मैं अपेक्षाकृत नया सिम्फनी 2 हूं और अब तक इसे प्यार करता हूं - इस समस्या को छोड़कर मैं इसके खिलाफ आ रहा हूं।सिम्फनी 2 सिद्धांत सिद्धांत: उत्पन्न: इकाइयां कभी काम नहीं करती

(मेरे लिए) खतरनाक: सिद्धांत: उत्पन्न: संस्थाओं

जब मैं मुझे लगता है कि आदेश काम नहीं कर रहा हो सकता है मेरी पहली Symfony2 परियोजना शुरू की और सिर्फ सिद्धांत का उपयोग कर समाप्त हो गया: उत्पन्न: इकाई के बजाय जो ठीक काम किया।

हालांकि, इस बार मैं एक ऐसे सिस्टम के लिए एक एप्लीकेशन लिखने की कोशिश कर रहा हूं जिसमें पहले से ही डेटाबेस टेबल हैं। मैंने निर्देशों का पालन किया: Symfony2 Docs जो कि सभी काम ठीक है, सिवाय इसके कि सिद्धांत के लिए सामान्य रूप से: जेनरेट करें: इकाइयां बिट।

मैं निम्नलिखित इकाई फ़ाइल @ मेरे/बंडल/FeedManagerBundle/इकाई/Feeds.php

<?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; 


} 

और मेरे/बंडल/FeedManagerBundle/संसाधन/config/सिद्धांत में/Feeds.orm.yml

है
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: { } 

और इस त्रुटि मैं हो रही है:

$ 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 

मैं करने के लिए YML फ़ाइल का नाम बदलने की कोशिश की है पूरा रास्ता मैंने yml फ़ाइल की पहली पंक्ति को पूर्ण पथ में बदलने का भी प्रयास किया है और मैंने एक ही समय में उन दोनों चीजों को करने का प्रयास किया है। कुछ भी काम नहीं करता & अब मैं अपने बालों को बाहर खींचने जा रहा हूं। क्या कोई इस कारण से सोच सकता है कि यह क्यों काम नहीं कर रहा है?

उत्तर

13

बदलें Feed.orm.yml रहे हैं:

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

वाह - मैंने सब कुछ करने की कोशिश की। मैंने भी मेरी/बंडल/फीडमैनेजरबंडल/इकाई/फ़ीड्स की कोशिश की: धन्यवाद! – someuser

+0

@l_t खुश है कि समस्या हल हो गई है – seferov

+0

यहां मेरी एक्सएमएल फ़ाइल मैपिंग के साथ ही है। मेरे पास <इकाई का नाम = "शहर" तालिका = "शहर"> था और यह वही त्रुटि दे रहा था। मैंने इसे <इकाई नाम = "ऐपबंडल \ Entity \ City" तालिका = "शहर"> में बदल दिया और यह काम किया। धन्यवाद! – a4bike

1

मैं एक ही समस्या थी, लेकिन समस्या वहाँ नहीं था। मेरे \ बंडल \ FeedManagerBundle \ इकाई \ Aircaft:

वास्तव में, मैं इकाई, यानी का नाम बदलना चाहता था मेरे \ बंडल \ FeedManagerBundle \ इकाई \ विमान जा रहा था:

(क्योंकि तालिका "एयरकाफ्ट" थी: -एस)

लेकिन मैंने फ़ाइल का नाम नहीं बदला। जब मैं aircaft.orm.yml एयरक आर aft.orm.yml ("आर" के साथ) कमांड काम करता है !!

0

मैंने इस मुद्दे को अलग-अलग तरीके से हल किया। orm.yml फ़ीड्स इकाई की फ़ाइल समस्या पैदा कर रही है, इसलिए मैंने इसे resource -> config -> doctrine से हटा दिया, फिर मैंने php app/console doctrine:generate:entities YourBundleName चलाया।

यह काम करता है।

यदि आप मानचित्रण जानकारी को doctrine:mapping:convert कार्य का उपयोग कर अन्य समर्थित मैपिंग प्रारूपों में कनवर्ट करना चाहते हैं। नीचे दिए गए नेमस्पेस को अपने साथ बदलें। यह 100% काम करता है।

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

उत्तर की खोज की कोई 5 घंटे के लिए खोज करने के बाद थे ...

YML से संस्थाओं उत्पन्न करने के लिए model.php के लिए, बस यह करते हैं। नीचे दिए गए बोल्ड टेक्स्ट पर फ़ोकस करें। आदेश है:

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

सुनिश्चित करें कि आपके model.orm.yml फ़ाइल अपने फ़ोल्डर में है

C: \ xyz \ abc ** AppBundle \ संसाधन \ config \ सिद्धांत ** और अपने YML फ़ाइल है मैपिंग कोड की शुरूआत में उद्धरणों में यह संदर्भ "ऐपबंडल \ Entity \ Book:"