Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

केकपीएचपी 3.5 स्थानिक क्षेत्र में हमेशा टेक्स्ट () MySQL फ़ंक्शन लागू करें

AFAIK ऐसी कोई कार्यक्षमता नहीं है, कक्षाएं टाइप करें और क्लॉज सामग्री का चयन करें कभी स्पर्श न करें।

यदि आप इसे सभी खोजों पर लागू करना चाहते हैं, तो आप उदाहरण के लिए Model.beforeFind() का उपयोग कर सकते हैं इवेंट, select . को पार करें क्लॉज करें और फ़ील्ड को एक्सप्रेशन में बदलें। यहां एक त्वरित और गंदा उदाहरण दिया गया है, जहां field POLYGON . का नाम है कॉलम टाइप करें:

// in the respective table class

use Cake\Event\Event;
use Cake\ORM\Query;

// ...

public function beforeFind(Event $event, Query $query, \ArrayObject $options, $primary)
{
    $query->traverse(
        function (&$value) use ($query) {
            if (empty($value)) {
                $value = $query->aliasFields($this->getSchema()->columns());
            }

            foreach ($value as $key => $field) {
                if (is_string($field) &&
                    $this->aliasField($field) === $this->aliasField('field')
                ) {
                    unset($value[$key]);
                    $value[key($query->aliasField($field))] = $query->func()->AsText([
                        $this->aliasField('field') => 'identifier'
                    ]);
                }
            }
        },
        ['select']
    );
}

आपको $field . का हिसाब देना पड़ सकता है अभिव्यक्ति के रूप में भी, यदि फ़ील्ड का उपयोग एक में किया जा सकता है और उसे वहां भी परिवर्तित करने की आवश्यकता है।

दूसरा तरीका यह होगा कि पीएचपी स्तर पर डेटा को टाइप क्लास 'toPHP() . में कनवर्ट किया जाए विधि, जैसा कि आपके कोड उदाहरण में पहले ही इंगित किया गया है।

यह भी देखें



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql एक क्रमबद्ध सरणी के भीतर क्वेरी का चयन करें

  2. MySQL तालिका में 1 या 0 डालने के लिए HTML चेकबॉक्स का उपयोग करना

  3. समानांतर में mysql से स्पार्क रीडिंग डेटा

  4. mysql_real_escape_string अपरिभाषित है

  5. मैं सीपीपी प्रोग्राम का उपयोग कर डेटाबेस (mySql) में मान कैसे सम्मिलित कर सकता हूं?