glauberkyves/mysql-functions-doctrine2

Doctrine 的 MySQL 函数:CONCAT_WS

0.1.0 2015-02-07 17:10 UTC

This package is not auto-updated.

Last update: 2024-09-18 06:38:29 UTC


README

此库为 Doctrine2 提供了 MySQL 函数。

目前支持

  • CONCAT_WS
  • GEO
  • DATE
  • YEAR
  • MONTH
  • DAY

欢迎分叉并添加其他函数。

安装

获取包

在您的 composer.json 中添加以下内容

{
	"require": {
		"glauberkyves/mysql-functions-doctrine2": "1.*"
	}
}

然后运行

php composer.phar update

或者

composer update

如果您已全局安装 composer。

将类添加到您的配置中

$config = new \Doctrine\ORM\Configuration();
$config->addCustomStringFunction('concat_ws', 'GlauberKyves\MysqlDoctrineFunctions\DQL\MysqlRand');

$em = EntityManager::create($dbParams, $config);

当然,您可以仅选择所需的函数。

与 Symfony2 一起使用

如果您在 Symfony2 应用程序中安装此库,您可以在 config.yml 中添加以下内容

# app/config/config.yml
doctrine:
    orm:
        # ...
        entity_managers:
            default:
                # ...
                dql:
                    string_functions:
                        concat_ws: GlauberKyves\MysqlDoctrineFunctions\DQL\MysqlConcatWs
                        month: GlauberKyves\MysqlDoctrineFunctions\DQL\MysqlMonth
                    numeric_functions:
                        geo: GlauberKyves\MysqlDoctrineFunctions\DQL\MysqlGeo
                    datetime_functions:
                        date: GlauberKyves\MysqlDoctrineFunctions\DQL\MysqlDate
                        day: GlauberKyves\MysqlDoctrineFunctions\DQL\MysqlDay
                        year: GlauberKyves\MysqlDoctrineFunctions\DQL\MysqlYear

用法

现在您可以在 DQL 查询中使用这些函数

$query = 'SELECT CONCAT_WS('string', 'string') FROM ...';
$em->createQuery($query);

$query = 'SELECT GEO(-15.5656, -47.5656, t.latitude, t.longitude) FROM tb_address t ...';
$em->createQuery($query);