मौजूद नहीं है, मैं सिम्फनी 2 में LEVENSHTEIN फ़ंक्शन को शामिल करने की कोशिश कर रहा हूं, हालांकि, मुझे अभी भी त्रुटियां मिलती हैं। चश्मा + मैं अब तक क्या किया है:सिम्फनी 2 - कस्टम डीक्यूएल फ़ंक्शन पंजीकृत है लेकिन
- PostgreSQL 9.3
- Levenshtein fuzzystrmatch विस्तार
खोल निष्पादन के माध्यम से समारोह परीक्षण में शामिल थे। बिल्कुल ठीक काम करता है:
postgres=# SELECT levenshtein('test', 'text'); levenshtein ------------- 1 (1 row)
जोड़ा गया DQL में समारोह:
<?php namespace AppBundle\DQL; use Doctrine\ORM\Query\AST\Functions\FunctionNode; use Doctrine\ORM\Query\Lexer; use Doctrine\ORM\Query\Parser; use Doctrine\ORM\Query\SqlWalker; class LevenshteinFunction extends FunctionNode { public $firstStringExpression = null; public $secondStringExpression = null; public function getSql(SqlWalker $sqlWalker) { return 'LEVENSHTEIN(' . $this->firstStringExpression->dispatch($sqlWalker) . ', ' . $this->secondStringExpression->dispatch($sqlWalker) . ')'; } public function parse(Parser $parser) { // levenshtein(str1, str2) $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->firstStringExpression = $parser->StringPrimary(); $parser->match(Lexer::T_COMMA); $this->secondStringExpression = $parser->StringPrimary(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); } }
Config.yml
orm: auto_generate_proxy_classes: "%kernel.debug%" auto_mapping: true dql: numeric_functions: LEVENSHTEIN: AppBundle\DQL\LevenshteinFunction
समस्या: जब मेरे भंडार में निम्नलिखित codeblock क्रियान्वित , निम्न त्रुटियां होती हैं:
$this->getEntityManager()->createQuery("SELECT LEVENSHTEIN('test', 'text') FROM AppBundle:User"); return $query->getResult();
SQLSTATE[42883]: Undefined function: 7 ERROR: function levenshtein(unknown, unknown) does not exist
मैं क्या याद आ रही है? डीक्यूएल/सिम्फनी/पीडीओ/... फ़ंक्शन को पहचानने क्यों नहीं है? किसी भी सहायताको बहुत सराहा जाएगा!