私は Symfony にかなり慣れていないので、列を文字列と比較する方法を知りたいです。
リポジトリで QueryBuilder を使用しています。MySQL の同等の WHERE 句は次のとおりです。
WHERE UPPER(a.name) = UPPER(my_app_var)
class ApplicationRepository extends EntityRepository
{
public function existsByName($name, $caseSensitive = false)
{
$builder = $this->createQueryBuilder('a');
if ($caseSensitive)
{
$builder->where($builder->expr()->eq('a.name', $name));
}
else
{
$builder->where($builder->expr()->eq('a.name', $builder->expr()->upper($name)));
}
return count($builder->getQuery()->getResult()) != 0;
}
}
Symfony は構文エラーを返します:
クエリ例外:
SELECT a FROM Application a WHERE a.name = UPPER(my_var_app)