2010-11-21 6 views
5

मैं अपने सिम्फनी ऐप के लिए स्कीमा पर काम कर रहा हूं, और मुझे दो बूलियन फ़ील्ड के डिफ़ॉल्ट मान को गलत पर सेट करने की आवश्यकता है। हालांकि, मैंने इसे करने की कोशिश की है, जब एसक्यूएल उत्पन्न होता है, तो यह डिफ़ॉल्ट कीवर्ड के साथ आता है, लेकिन इसके बाद कोई डिफ़ॉल्ट मान नहीं होता है।सिम्फनी + सिद्धांत: बूलियन फ़ील्ड के डिफ़ॉल्ट मान के लिए सही YAML वाक्यविन्यास

मेरा आखिरी प्रयास किया गया था:

negotiable: 
    type: bool 
    default: "false" 
complete: 
    type: bool 
    default: "false" 

लेकिन मैं यह भी कोशिश की है default: false, default: 'false', default: 0 झूठे के बाद से सिर्फ MySQL में 0 के लिए एक उपनाम है, और default: '0'

क्वेरी असफल:

CREATE TABLE dormcode_project (id BIGINT AUTO_INCREMENT, client_id BIGINT, title VARCHAR(255), briefdesc LONGTEXT, spec LONGTEXT, coder_id BIGINT, paytype VARCHAR(30), negotiable bool DEFAULT , complete bool DEFAULT , created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, INDEX coder_id_idx (coder_id), INDEX client_id_idx (client_id), PRIMARY KEY(id)) ENGINE = INNODB 

नोटिस negotiable bool DEFAULT , complete bool DEFAULT ,

जिस फ़ाइल के साथ मैं खेल रहा हूं वह /config/doctrine/schema.yml फ़ाइल है। मैं सिम्फनी/सिद्धांत के लिए नया हूं। मुझे लगता है कि यह सही है, लेकिन मुझे लगता है कि मैं गलत हो सकता हूं। मैं यह सुनिश्चित करने के लिए कि स्कीमा को कैश नहीं किया गया है, एसक्यूएल डालने के प्रत्येक प्रयास के बीच symfony cc करता हूं। लेकिन ऐसा लगता है कि यह उस फ़ाइल का उपयोग नहीं कर रहा है जिसे मैं बदल रहा हूं ...

+0

कोशिश (एक पंक्ति): परक्राम्य: {प्रकार: बूलियन, डिफ़ॉल्ट: झूठी} –

+0

मैंने कोशिश की, लेकिन ऐसा कोई फर्क नहीं पड़ता। सटीक वही, गलत, एसक्यूएल अभी भी थूक जाता है:/ –

उत्तर

7

बूलियन TINYINT का समानार्थी है। इसके बजाय integer(1) का उपयोग करें और अपना डिफ़ॉल्ट 0/1 पर सेट करें।

सूत्रों का कहना है:

http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html

http://www.symfony-project.org/doctrine/1_2/en/04-Schema-Files

+2

आपको 'बूलियन' का उपयोग करना चाहिए, और सिद्धांत को अंतर्निहित डीबी इंजन के सबसे लागू प्रारूप में परिवर्तित करने दें। – Maerlyn

+0

@Maerlyn: निष्पक्ष बिंदु, हालांकि पोस्टर चाहता था कि समस्या MySQL के लिए हल हो। – Tom

5

"बूल" का उपयोग करने के बजाय आपको स्कीमा में "बूलियन" का उपयोग करना चाहिए। इसके अलावा, डिफ़ॉल्ट: झूठी काम करना चाहिए।

+0

मैंने टीआई को वापस 'डिफ़ॉल्ट: गलत' में बदल दिया और 'बूल' को' बूलियन 'में बदल दिया लेकिन मुझे एक ही परिणाम मिला –

+3

हमें अपनी अपडेटेड स्कीमा दिखाएं, यह मेरे लिए काम करता है : 'व्यवस्थापक: {प्रकार: बूलियन, डिफ़ॉल्ट: गलत} '। – Maerlyn

8

जब से मैं एक टिप्पणी जोड़ने के लिए पर्याप्त नहीं अंक है, मैं यह गूगल के माध्यम से इस खोजने लोगों के लिए एक जवाब और प्रकार की तरह के रूप में जोड़ देंगे खुद। मुझे पता है कि यह एक पुराना सवाल है।

इस प्रकार

Symfony 2.5 (कम से कम) में, YAML में एक डिफ़ॉल्ट मान सेट करने का सही तरीका है:

negotiable: 
    type: boolean 
    options: 
     default: 0 
complete: 
    type: boolean 
    options: 
     default: 0 
+0

यह उत्तर नीचे से क्यों है .. यह सही समाधान है। मेरे दोस्त Kudos। – axelvnk

+0

कितना अजीब बात है, मैं इस सटीक वाक्यविन्यास के साथ एक ही संस्करण (2.5) का उपयोग कर रहा हूं, और यह अभी भी काम करने से इनकार करता है: / – motagirl2

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