2011-12-03 8 views
6

मैं अपने डॉक्टर 2 परियोजना के लिए एक जीआईएस (भू-स्थानिक डेटा) एक्सटेंशन लिखना चाहता हूं।सिद्धांत के लिए जीआईएस एक्सटेंशन 2

मुझे पता है कि सरल कस्टम फ़ंक्शंस और प्रकार कैसे लिखना है। MySQL विशेष स्टोरेज प्रारूप को समायोजित करने के लिए, मुझे डेटा पुनर्प्राप्त/संग्रहीत करते समय कुछ SQL फ़ंक्शन (GeomFromWKB() और AsBinary()) का उपयोग करने की आवश्यकता है।

मुझे ऐसी जगह नहीं मिल सकती है जहां मैं सिद्धांत 2 बताता हूं। जैसा कि मैंने इसे देखा है, convertToPHPValue() और convertToDatabaseValue() विधियां सही जगह नहीं हैं।

उत्तर

1

क्या मैं अब तक पता चला: आईआरसी चैनल के अनुसार, convertToPHPValueSQL() और convertToDatabaseValueSQL() अगली फिल्म का हिस्सा होगा, और आवश्यक कार्यक्षमता की पेशकश करेगा। एक बार यह उपलब्ध हो जाने पर, कस्टम टाइप टाइप करना काफी सरल है।

+0

बस अद्यतन: सिद्धांत 2.1.x श्रृंखला में इन कार्यों को शामिल किया गया है। यहां देखें: http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/types.html#custom-mapping-types –

1

यदि आप doctrine2 में SQL फ़ंक्शन को कॉल करना चाहते हैं तो आप इसे अभिव्यक्ति Func कर सकते हैं लेकिन यह केवल DQL के साथ काम करेगा।

यहां आपके पास उदाहरण है जो आपको बताएगा कि DATE_DIFF फ़ंक्शन का उपयोग कैसे करें जो सिद्धांत में शामिल नहीं है।

$qb = $repository->createQueryBuilder('l'); 
$qb->expr()->lte(new Doctrine\ORM\Query\Expr\Func('DATE_DIFF',array('lo.start_date', 'CURRENT_DATE()')),'0'); 
+0

धन्यवाद, कि कभी कभी एसक्यूएल के लिए एक अच्छा संकेत है कि आप केवल जरूरत एक बार एक परियोजना में है। – Tom

0

अद्यतन/वैकल्पिक:

मैं एक symfony2 विस्तार है कि मेरी जरूरतों के सबसे कार्य करता पाया है। मैं इसे काँटेदार और कहा कि क्या मैं यहाँ की जरूरत है:

https://github.com/tvogt/doctrine2-spatial/

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