2016-01-21 12 views
8

प्रसंग:Symfony crud फतवे: लोड नहीं कर सका प्रकार "datetime"

मैं सिम्फोनी 3. के साथ एक परियोजना बनाने के मेरे डेटाबेस एक क्षेत्र datetime

इस आदेश के साथ मैं बनाने के साथ एक मेज है एक मेज के लिए एक सरल CRUD आवेदन

php bin/console doctrine:mapping:import --force adminBundle xml 

php bin/console doctrine:mapping:convert annotation ./src 

php bin/console doctrine:generate:entities adminBundle 

php bin/console generate:doctrine:crud 

त्रुटि:

तो मेरी crud किया जाता है लेकिन जब मैं एक पंक्ति फेंक एक त्रुटि

Could not load type "datetime" 500 Internal Server Error - InvalidArgumentException

स्टैक ट्रेस

in vendor/symfony/symfony/src/Symfony/Component/Form/FormRegistry.php at line 87 

संपादित मुझे लगता है कि लोड नहीं कर सका प्रकार "datetme", मैं में मेरी फार्म रजिस्टर की कोशिश मेरी सेवाओं की अनुभाग सेवाएं .yml, लेकिन मुझे नहीं पता कि यह कैसे करें? प्रकार के समय के लिए।

कोई विचार? अग्रिम में धन्यवाद।

उत्तर

22

सीआरयूडी जनरेटर में एक बग की तरह लगता है। यह पूरी तरह से योग्य वर्ग के नाम के बजाय एक प्रकार उर्फ ​​उपयोग करता है:

$builder->add('fieldName', 'textarea'); 

पूरी तरह से योग्य वर्ग के नाम Symfony 3.0 के बाद से की जरूरत है:

$builder->add('fieldName', DateTimeType::class); 

उत्पन्न प्रपत्र प्रकार की जांच करें।

+2

धन्यवाद! ऐसा लगता है कि सिम्फनी 3 जेनरेटर स्वचालित रूप से एफक्यूसीएन का उपयोग नहीं कर रहा है .... यह एक बग है। रिपोर्ट करने के लिए जा रहे हैं :) –

+1

डेटाटाइम टाइप का पूरा नामस्थान क्या है? –

+1

सिम्फनी \ घटक \ फ़ॉर्म \ एक्सटेंशन \ कोर \ टाइप \ डेटटाइम टाइप – Filo

2

सेर्गेई, यह इंगित करने के लिए धन्यवाद। मुझे यकीन नहीं है कि क्यों, लेकिन पूरी तरह से योग्य वर्ग के नाम को निर्दिष्ट करने से मेरे अंत में इस मुद्दे को हल नहीं किया गया। डेटाटाइम उपनाम को एक साथ हटाकर सभी ने किया।

परिवर्तित:

$builder 
    ->add('name') 
    ->add('time', 'datetime') 
    ->add('location') 
; 

करने के लिए:

$builder 
    ->add('name') 
    ->add('time') 
    ->add('location') 
; 
+2

डेटटाइम क्लास को पहले आयात करने का प्रयास करें "सिम्फनी \ घटक \ फ़ॉर्म \ एक्सटेंशन \ कोर \ टाइप \ डेटटाइम टाइप का उपयोग करें;" और फिर "$ builder-> जोड़ें ('समय', डेटटाइम टाइप :: कक्षा)" – Oleg

-1

सिम्फोनी 3.0V php 5.6V

Symfony\Component\Form\Extension\Core\Type\DateTimeType;

->add('perfecnacimiento', DateTimeType::class)

+0

स्टैक ओवरव्लो पर अच्छे उत्तरों में केवल स्पष्टीकरण शामिल होना चाहिए, न केवल कोड। – yakatz

संबंधित मुद्दे