postgresql – 默认情况下将自定义doctrine输出walker应用于所有
发布时间:2020-12-13 16:03:47 所属栏目:百科 来源:网络整理
导读:我写了以下自定义助行器来使用postgres的ilike而不是像: use DoctrineORMQuerySqlWalker;class IlikeWalker extends SqlWalker{ /** * Walks down a SelectClause AST node,thereby generating the desired SQL. * * @param $selectClause * @return str
我写了以下自定义助行器来使用postgres的ilike而不是像:
use DoctrineORMQuerySqlWalker; class IlikeWalker extends SqlWalker { /** * Walks down a SelectClause AST node,thereby generating the desired SQL. * * @param $selectClause * @return string The SQL. */ public function walkLikeExpression($likeExpr) { $sql = parent::walkLikeExpression($likeExpr); $sql = str_replace('LIKE','ILIKE',$sql); return $sql; } } 可以通过以下方式添加到任何查询: $query->setHint( $query::HINT_CUSTOM_OUTPUT_WALKER,'DoctrineExtensionsWalkerBundleWalkerIlikeWalker' ); 但是,如何启动服务或应用配置以自动将其用于每个查询? 解决方法
Doctrine 2.5在orm配置上有一个新选项defaultQueryHint.您可以为所有查询设置一次自定义助手:
<?php /** @var DoctrineORMEntityManager $em */ $em->getConfiguration()->setDefaultQueryHint( Query::HINT_CUSTOM_OUTPUT_WALKER,'DoctrineExtensionsWalkerBundleWalkerIlikeWalker' ) 您可以在bundle类的boot方法中使用此代码: class YouBundle extends Bundle { public function boot() { parent::boot(); $this->container ->get('doctrine.orm.entity_manager') ->getConfiguration() ->setDefaultQueryHint( Query::HINT_CUSTOM_OUTPUT_WALKER,'DoctrineExtensionsWalkerBundleWalkerIlikeWalker' ); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |