ORM 学说中的 Substring_index 函数

2023-12-07

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

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

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

11.48.205.1

我该如何解决这个问题?


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

<?php

namespace Sad\Functions;

use Doctrine\ORM\Query\AST\Functions\FunctionNode;
use Doctrine\ORM\Query\Lexer;
use Doctrine\ORM\Query\SqlWalker;
use Doctrine\ORM\Query\Parser;

/**
 * "SUBSTRING_INDEX" "(" ArithmeticPrimary "," ArithmeticPrimary "," ArithmeticPrimary ")"
 *
 * @author  Andrey Stepanov <[email protected]>
 */
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);
    }
}

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

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

执行此操作后,您将得到以下结果:

echo $entityManager->createQuery("SELECT p FROM \Sad\Schema\AbstractPageAny 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')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ORM 学说中的 Substring_index 函数 的相关文章

  • 从 PHP 数组生成 HTML 表

    我不明白这一点 我需要解决看似简单的问题 但这超出了我的逻辑 我需要编写一个函数 table columns input cols 它将输出一个表 示例 input array apple orange monkey potato chee
  • 一种无需 JavaScript 即可在 PHP 中确定浏览器宽度的方法?

    首先有吗 或者我必须使用javascript 我希望能够更改使用的 CSS 因此 frex 我可以为移动设备或其他设备加载较小的字体 不幸的是 仅使用 PHP 无法检测用户分辨率 如果您使用 Javascript 则可以在 cookie 中
  • CodeIgniter 自定义库未加载

    我是 CodeIgniter 的新手 并尝试用它开发一个相当简单的应用程序 只是一个用于处理想要娱乐中心通行证的员工的注册的表单 我正在尝试将事物分开以使它们更清晰 这是代码 应用程序 控制器 reccenter php class Rec
  • 获取 YouTube 最高缩略图分辨率

    我想获得 youtube 最高缩略图 maxresdefault jpg 像这个 http i ytimg com vi Cj6ho1 G6tw maxresdefault jpg http i ytimg com vi Cj6ho1 G6
  • 图像随机损坏(但刷新后加载)并显示“资源解释为图像但使用 MIME 类型 text/html 传输”

    我目前正在开发一个简单的 php 网站 问题是 我的整个网站中的图像 发生在所有 php 文件中 随机损坏并显示错误资源解释为图像 但以 MIME 类型 text html 传输但是 如果我尝试多次刷新页面 可以再次加载图像并且错误消失 我
  • PHP:读取所有传入 HTTP 请求的类 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • CakePHP 视图包括其他视图

    我有一个 CakePHP 应用程序 在某些时候会显示带有产品媒体 图片或视频 的视图 我想知道是否有某种方式可以包含另一个威胁视频或威胁图片的视图 具体取决于标志 我想将这些 小视图 用于其他几个目的 所以它应该 像 蛋糕组件一样 以便重用
  • Xdebug V3 不会停止 VSCode 中的断点

    我正在尝试使用 VSCode 在 XAMPP 上进行调试 但没有成功 我知道有很多关于这个的问题 我已经尽了一切努力 但仍然行不通 我的 xdebug 扩展确实有一件奇怪的事情 我目前使用 PHP v7 4 12 和 Xdebug 版本 3
  • 使用 PHP glob 列出 FTP 服务器上的文件不起作用

    我使用此代码来访问目录 location files pictures glob location png 我想使用 FTP 访问远程路径 location opendir ftp user password host name files
  • 如何将表中不存在但原始SQL中存在的实体字段设置为别名?

    假设我们有一个这样的查询 SELECT CUSTOM EXPRESSION as virtualfield FROM users 用户的实体本身具有 虚拟字段 但映射注释没有 因为表没有该字段 假设它作为原始 SQL 执行 我们如何使用上面
  • 在哪里可以获得 PHP 5.3+ 的 runkit DLL 扩展?

    这是一个简单的问题 我在哪里可以获得 PHP 5 3 版本的 runkit 扩展 它的手册 http php net manual en book runkit php http php net manual en book runkit
  • Laravel Vue 组件只能传递数字?

    在我的 UserMenu vue 中我写道 export default props nameVal data return 并在blade php中
  • 带倒计时的php循环

    假设我从 400 开始计数器 我将如何执行一个向后运行直到 0 的 foreach 循环 伪代码 i 400 foreach SOMETHING do stuff i for i 400 i gt 0 i do stuff 其他方法 i 4
  • 从 Laravel 4 输入生成新数组

    我使用 Input all 从动态生成的表单中获取一些输入 我使用 jQuery 来允许用户添加字段 字段名称为 first names last names 和 emails input 变量现在看起来像这样 array size 4 t
  • 雄辩的第一个 where 子句

    我想知道 Laravel 如何实现雄辩的语法 以便可以静态调用第一个 where 子句User where User where id 23 gt where email email gt first 他们有吗public static f
  • PHP session_regenerate_id 和黑莓浏览器

    问候 我正在开发一个登录系统 并陷入了黑莓浏览器身份验证的困境 他们似乎对 PHP 的 session regenerate id 有问题 有人可以建议替代方案吗 以下是身份验证和登录脚本 UPDATE看来会话一般都不起作用 拿出 sess
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p
  • PHP 拒绝从 var_dump、print 等输出数据

    我目前正在运行 WAMP 服务器 并且在过去的 30 分钟内一直在尝试弄清楚我的项目如何以及为什么不会输出任何指定的 PHP 数据 起初我以为是因为我有一个 htaccess文件的output buffering被禁用 所以我删除了它 仍然
  • Laravel 搜索关系

    我有两个相关的模型 我正在尝试在产品中进行搜索 并且仅显示实际搜索结果 而不是找到该产品的类别的所有产品 我不想搜索任何类别 因为无论搜索什么或找到什么 类别都会始终显示 Example I have the following categ
  • 矩形超出边界是什么意思

    PPB Graphics2D PaintImageData 矩形超出界限是什么意思 我几乎在我检查的每一段代码中都看到了它 最新的代码是 define my consumer key define my consumer secret oa

随机推荐

  • 跨域调用WCF服务

    我有一个 WCF 服务 这是我要调用的方法 OperationContract WebInvoke Method POST BodyStyle WebMessageBodyStyle Wrapped ResponseFormat WebMe
  • Selenium:从下拉列表中选择值,该值取决于另一个下拉列表中选择的值

    Selenium 我必须从下拉列表中选择值 该值取决于另一个下拉列表中选择的值 例如 我有两个下拉列表 1 和 2 要在 2 中填充的值取决于 1 当我在下拉列表 1 中选择值时 页面将刷新并填充 2 中的值 我必须在下拉菜单 2 中选择值
  • ServiceStack 与 ASP.Net Web API [关闭]

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 Closed 这个问题是基于意见的 目前不接受答案 我想编写一个新的 REST 风格 API 并且研究过 ServiceSta
  • 特殊字符和重音字符

    我正在为法国客户做一些工作 因此需要处理带重音的字符 但我遇到了很多困难 我希望解决方案很简单 并且有人可以向我指出 字符串 La For t pour T moin转换为 La For pour T oin 请注意重音字符后面缺少的字符
  • Wix 卸载快捷方式不起作用

    我正在尝试为我的应用程序创建卸载快捷方式 并且我正在使用此链接中的确切标记 http wixtoolset org documentation manual v3 howtos files and registry create unins
  • 是否可以让 vs2010 vsix 在本地检查更新?

    我正在工作中为 Visual Studio 编写项目结构和代码分析扩展 该项目无法发布到 Visual Studio 扩展库 有没有什么方法可以管理 Visual Studio 中内置的更新和部署 以便团队可以使用扩展并获取更新提示 不 这
  • getElementById().style.display 不起作用

    我做了一些js代码 div 出现或消失 src js openSearch gt var con document getElementById search bar if con style display none con style
  • 如何限制 QLineEdit 的文本框宽度最多显示四个字符?

    我正在使用基于 PySide 的 GUI 我制作了一个 一行 文本框QLineEdit输入的长度只有四个字符 我已经成功应用了这一限制 问题是我的文本框比需要的宽 即文本后面有很多未使用的空间 如何缩短文本框的长度 我知道通过使用 Desi
  • 访问 rshiny 中动态生成的输入

    我有一个应用程序 用户需要将随机生成的元素 在本例中为字母 分配给组 但可以决定使用多少个组 因为selectInput其中定义的成员资格是根据用户指定的数字动态生成的 命名菜单是自动完成的 例如 usergroup1 usergroup2
  • sqljocky同步查询数据库

    我正在尝试使用 sqljocky 同步查询 MySQL 数据库 我有一个Load运行查询并获取数据然后将数据导入到User目的 我遇到的问题是运行查询的 Future 没有及时返回以将对象返回到调用方法 DataObject user ne
  • 如何将 Matplotlib Axes 对象渲染为图像(作为 Numpy 数组)?

    有没有办法将特定 Axes 对象的内容呈现为图像 作为 Numpy 数组 我知道您可以对整个图形执行此操作 但我想获取特定轴的图像 我尝试渲染的轴包含一个图像 用 imshow 绘制 在顶部绘制了一些线条 理想情况下 渲染的 ndarray
  • 最佳实现:机场/火车站出发板(html/css/jquery)[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 任何人都可以向我指出使用 HTML CSS jQuery 的火车站出发板的实现吗 这适合您的需求吗 不是我的 但执行得很好 http jsfiddl
  • 将 Swift 3 升级到 4,Swift 扩展不再出现在 Objective C 中

    我刚刚完成将混合语言项目 objective c 和 Swift 从 Swift 3 升级到 Swift 4 一切似乎都很顺利 除了我所有的 Swift 扩展都无法再在 Objective C 中访问 我不知道如何获得anySwift 扩展
  • 来自另一个类库的基本控制器在 Web api 中不起作用

    我有两个 Web API 项目 还有一个MarketController我需要扩展 Api 控制器 所以我做到了 我创建了一个BaseController类并继承自ApiController像这样 public class BaseCont
  • 计算数百 GB 数据中的子序列

    我正在尝试处理一个非常大的文件并计算文件中特定长度的所有序列的频率 为了说明我正在做的事情 请考虑一个包含序列的小输入文件abcdefabcgbacbdebdbbcaebfebfebfeb 下面 代码读取整个文件 并获取长度为 n 的第一个
  • 如何在 AngularJS 中检索之前的 URL

    我知道我可以使用获取当前 URL location search and location path 但我需要一种方法来获取上一个 我可以使用全局变量或类似的变量吗 Angular rootScope将拥有所有应用程序组件的所有信息 下面在
  • 将儒略日转换为日/月/年

    我的帖子显然不清楚 所以我正在努力修复它 如果我仍然不清楚 请随时告诉我 我得到了一个物理变量的数据框 每分钟都有一个数据 我想将前 4 列转换为单个列 R 中的 d m Y H M GMT Year Julian day Hour Min
  • 如果 Visual Studio 2012 / 2013 中的项目/解决方案中缺少文件,则报告错误/警告

    视觉工作室不再支持宏 因此以下问题中的答案仅对以前的版本有效 如果 Visual Studio 中的项目 解决方案中缺少文件 则报告错误 警告 当您构建缺少文件的解决方案时 Visual Studio 2012 2013 是否可以报告错误
  • 在目标包含源的情况下使用 strncpy()

    我用 C 编写了一个函数来修剪字符串中的空白字符 我关心的是最后一行trim 下面的函数 其中源包含在目标中 测试用例以及其他一些测试结果都很好 复制源和目标位于同一内存中的字符串的全部或部分会导致奇怪的问题吗 源代码 include
  • ORM 学说中的 Substring_index 函数

    我必须使用SUBSTRING INDEXsymfony 2 中的学说 ORM 函数 我该怎么做 现在在查询中使用它会出现未定义的函数错误 Syntax Error line 0 col 299 Error Expected known fu