概述 快速入门 教程 手册 最佳实践 组件 参考 贡献

发布于 2015-08-27 16:54:13 | 170 次阅读 | 评论: 0 | 来源: 网络整理

Doctrine allows you to specify custom DQL functions. For more information on this topic, read Doctrine’s cookbook article “DQL User Defined Functions”.

In Symfony, you can register your custom DQL functions as follows:

  • YAML
    # app/config/config.yml
    doctrine:
        orm:
            # ...
            dql:
                string_functions:
                    test_string: AppBundleDQLStringFunction
                    second_string: AppBundleDQLSecondStringFunction
                numeric_functions:
                    test_numeric: AppBundleDQLNumericFunction
                datetime_functions:
                    test_datetime: AppBundleDQLDatetimeFunction
    
  • 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">AppBundleDQLStringFunction</doctrine:string-function>
                    <doctrine:string-function name="second_string">AppBundleDQLSecondStringFunction</doctrine:string-function>
                    <doctrine:numeric-function name="test_numeric">AppBundleDQLNumericFunction</doctrine:numeric-function>
                    <doctrine:datetime-function name="test_datetime">AppBundleDQLDatetimeFunction</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'   => 'AppBundleDQLStringFunction',
                    'second_string' => 'AppBundleDQLSecondStringFunction',
                ),
                'numeric_functions' => array(
                    'test_numeric' => 'AppBundleDQLNumericFunction',
                ),
                'datetime_functions' => array(
                    'test_datetime' => 'AppBundleDQLDatetimeFunction',
                ),
            ),
        ),
    ));
    
最新网友评论  共有(0)条评论 发布评论 返回顶部

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