<bdo id='w59xg'></bdo><ul id='w59xg'></ul>
  • <tfoot id='w59xg'></tfoot>
      1. <i id='w59xg'><tr id='w59xg'><dt id='w59xg'><q id='w59xg'><span id='w59xg'><b id='w59xg'><form id='w59xg'><ins id='w59xg'></ins><ul id='w59xg'></ul><sub id='w59xg'></sub></form><legend id='w59xg'></legend><bdo id='w59xg'><pre id='w59xg'><center id='w59xg'></center></pre></bdo></b><th id='w59xg'></th></span></q></dt></tr></i><div id='w59xg'><tfoot id='w59xg'></tfoot><dl id='w59xg'><fieldset id='w59xg'></fieldset></dl></div>
      2. <legend id='w59xg'><style id='w59xg'><dir id='w59xg'><q id='w59xg'></q></dir></style></legend>

        <small id='w59xg'></small><noframes id='w59xg'>

        学说 ORM 中的 Substring_index 函数

        时间:2023-08-18
          <tbody id='iTjdu'></tbody>

          <tfoot id='iTjdu'></tfoot>
          • <bdo id='iTjdu'></bdo><ul id='iTjdu'></ul>
                <legend id='iTjdu'><style id='iTjdu'><dir id='iTjdu'><q id='iTjdu'></q></dir></style></legend>
              1. <i id='iTjdu'><tr id='iTjdu'><dt id='iTjdu'><q id='iTjdu'><span id='iTjdu'><b id='iTjdu'><form id='iTjdu'><ins id='iTjdu'></ins><ul id='iTjdu'></ul><sub id='iTjdu'></sub></form><legend id='iTjdu'></legend><bdo id='iTjdu'><pre id='iTjdu'><center id='iTjdu'></center></pre></bdo></b><th id='iTjdu'></th></span></q></dt></tr></i><div id='iTjdu'><tfoot id='iTjdu'></tfoot><dl id='iTjdu'><fieldset id='iTjdu'></fieldset></dl></div>

                1. <small id='iTjdu'></small><noframes id='iTjdu'>

                2. 本文介绍了学说 ORM 中的 Substring_index 函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我必须在 symfony 2 的学说 ORM 中使用 SUBSTRING_INDEX 函数.我该怎么做?现在在查询中使用它会给我未定义的函数错误:

                  I have to use SUBSTRING_INDEX function in doctrine ORM in symfony 2. How can I do this? Right now using it inside the query gives me undefined function error:

                  [Syntax Error] line 0, col 299: Error: Expected known function, got 'SUBSTRING_INDEX'
                  

                  我使用这个函数来获取第一个数字,例如:

                  I use this function to get the first number from, for example:

                  11.48.205.1
                  

                  我该如何解决这个问题?

                  How can I solve this?

                  推荐答案

                  这里是代表 SUBSTRING_INDEX 函数的类(不要忘记更新命名空间).

                  Here is class that represent SUBSTRING_INDEX function (don't forget to update namespace).

                  <?php
                  
                  namespace SadFunctions;
                  
                  use DoctrineORMQueryASTFunctionsFunctionNode;
                  use DoctrineORMQueryLexer;
                  use DoctrineORMQuerySqlWalker;
                  use DoctrineORMQueryParser;
                  
                  /**
                   * "SUBSTRING_INDEX" "(" ArithmeticPrimary "," ArithmeticPrimary "," ArithmeticPrimary ")"
                   *
                   * @author  Andrey Stepanov <stepashka@gmail.com>
                   */
                  class SubstringIndexFunction extends FunctionNode
                  {
                      public $str = null;
                      public $delim = null;
                      public $count = null;
                  
                      /**
                       * @override
                       */
                      public function getSql(SqlWalker $sqlWalker)
                      {
                          return 'SUBSTRING_INDEX(' .
                              $this->str->dispatch($sqlWalker) . ', ' .
                              $this->delim->dispatch($sqlWalker) . ', ' .
                              $this->count->dispatch($sqlWalker) .
                          ')';
                      }
                  
                      /**
                       * @override
                       */
                      public function parse(Parser $parser)
                      {
                          $parser->match(Lexer::T_IDENTIFIER);
                          $parser->match(Lexer::T_OPEN_PARENTHESIS);
                          $this->str = $parser->ArithmeticPrimary();
                          $parser->match(Lexer::T_COMMA);
                          $this->delim = $parser->ArithmeticPrimary();
                          $parser->match(Lexer::T_COMMA);
                          $this->count = $parser->ArithmeticPrimary();
                          $parser->match(Lexer::T_CLOSE_PARENTHESIS);
                      }
                  }
                  

                  在创建实体管理器之前需要先注册:

                  You need to register it before creating entity manager:

                  $config->addCustomStringFunction('SUBSTRING_INDEX', 'SadFunctionsSubstringIndexFunction');
                  /* ... */
                  $entityManager = EntityManager::create($conn, $config);
                  

                  完成后,您将获得以下结果:

                  After you do it you'll get the following results:

                  echo $entityManager->createQuery("SELECT p FROM SadSchemaAbstractPageAny as p WHERE SUBSTRING_INDEX(p.name,'a',1) = 'P'")->getSQL();
                  // Output: SELECT p0_.id AS id_0, p0_.name AS name_1, p0_.type AS type_2 FROM page p0_ WHERE (SUBSTRING_INDEX(p0_.name, 'a', 1) = 'P')
                  

                  这篇关于学说 ORM 中的 Substring_index 函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:Symfony 2.8:Doctrine getManagerForClass() 没有返回正确的实体管理器 下一篇:Symfony 2 UniqueEntity repositoryMethod 在更新实体时失败

                  相关文章

                  <small id='WuHer'></small><noframes id='WuHer'>

                  <tfoot id='WuHer'></tfoot>
                  1. <legend id='WuHer'><style id='WuHer'><dir id='WuHer'><q id='WuHer'></q></dir></style></legend>
                      <bdo id='WuHer'></bdo><ul id='WuHer'></ul>

                    <i id='WuHer'><tr id='WuHer'><dt id='WuHer'><q id='WuHer'><span id='WuHer'><b id='WuHer'><form id='WuHer'><ins id='WuHer'></ins><ul id='WuHer'></ul><sub id='WuHer'></sub></form><legend id='WuHer'></legend><bdo id='WuHer'><pre id='WuHer'><center id='WuHer'></center></pre></bdo></b><th id='WuHer'></th></span></q></dt></tr></i><div id='WuHer'><tfoot id='WuHer'></tfoot><dl id='WuHer'><fieldset id='WuHer'></fieldset></dl></div>