Assetic Bundles 缓存 Composer 配置 控制台 控制器 调试 部署 Doctrine 电子邮件 事件分发器 表达式 表单 前端 日志 分析器 请求 路由 安全 序列化 服务容器 会话 PSR 7 Symfony 版本 模板 测试 升级 验证 Web 服务器 Web 服务 工作流

发布于 2015-12-06 07:30:02 | 219 次阅读 | 评论: 0 | 来源: 网络整理

Doctrine 允许您指定自定义 DQL 函数。要想知道关于这个话题的更多信息,阅读 Doctrine 的教程文章“DQL 用户定义函数”。

在 Symfony 中,您可以按照如下注册自定义 DQL 函数:

YAML:

# app/config/config.yml
doctrine:
    orm:
        # ...
        dql:
            string_functions:
                test_string: AppBundle\DQL\StringFunction
                second_string: AppBundle\DQL\SecondStringFunction
            numeric_functions:
                test_numeric: AppBundle\DQL\NumericFunction
            datetime_functions:
                test_datetime: AppBundle\DQL\DatetimeFunction

XML:

<!-- app/config/config.xml -->
<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:doctrine="http://symfony.com/schema/dic/doctrine"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
                        http://symfony.com/schema/dic/doctrine http://symfony.com/schema/dic/doctrine/doctrine-1.0.xsd">

    <doctrine:config>
        <doctrine:orm>
            <!-- ... -->
            <doctrine:dql>
                <doctrine:string-function name="test_string">AppBundle\DQL\StringFunction</doctrine:string-function>
                <doctrine:string-function name="second_string">AppBundle\DQL\SecondStringFunction</doctrine:string-function>
                <doctrine:numeric-function name="test_numeric">AppBundle\DQL\NumericFunction</doctrine:numeric-function>
                <doctrine:datetime-function name="test_datetime">AppBundle\DQL\DatetimeFunction</doctrine:datetime-function>
            </doctrine:dql>
        </doctrine:orm>
    </doctrine:config>
</container>

PHP:

// app/config/config.php
$container->loadFromExtension('doctrine', array(
    'orm' => array(
        // ...
        'dql' => array(
            'string_functions' => array(
                'test_string'   => 'AppBundle\DQL\StringFunction',
                'second_string' => 'AppBundle\DQL\SecondStringFunction',
            ),
            'numeric_functions' => array(
                'test_numeric' => 'AppBundle\DQL\NumericFunction',
            ),
            'datetime_functions' => array(
                'test_datetime' => 'AppBundle\DQL\DatetimeFunction',
            ),
        ),
    ),
));
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务