我写了下面的自定义步行者使用的Postgres的的ILIKE,而不是像:默认情况下,所有的应用定制学说输出沃克查询
use Doctrine\ORM\Query\SqlWalker;
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
,'\DoctrineExtensions\WalkerBundle\Walker\IlikeWalker');
但是,如何启动一个服务或应用一个配置来自动将其用于每个查询?
不好有没有办法解决:
可以在
boot
方法捆绑软件类使用此代码。我会接受这一点,因为虽然它不能解决问题,但它提供了前进的道路。我稍后会检查xtension。 – Lighthart 2013-04-28 18:57:21