tutorial law example español doctrine

law - doctrine tutorial español



Doctrine LIKE caso insensible (5)

Además, puedes probar:

$queryBuilder->where(''LOWER(b.title) LIKE LOWER(:query)'') ->setParameter(''query'', ''%'' . $query . ''%'');

Importante: después de convertir una cadena que contiene caracteres especiales a minúsculas con strtolower (), los caracteres especiales no aparecen correctos.

¿Es posible hacer una búsqueda con Doctrine sin distinción de mayúsculas y minúsculas?


Esto depende principalmente de su servidor de base de datos. Un LIKE con MySQL no distingue entre mayúsculas y minúsculas. Un Me gusta con PostgreSQL distingue entre mayúsculas y minúsculas. Pero puedes ayudarte con algo como esto:

$pattern = strtolower(''HEllO WorlD''); $q = Doctrine_Query::create() ->select(''u.username'') ->from(''User u'') ->where("LOWER(u.username) LIKE ?", $pattern);


La mejor manera de hacer esto es tener una columna de nombre de usuario canonizada, en esa columna puede almacenar la versión en minúscula de la columna de nombre de usuario y cualquier otro proceso de canonización que desee hacer y buscar e indexar esa columna en lugar de la columna de nombre de usuario, luego hacer

->where("u.canonic_username) LIKE ?", $pattern);

De esa manera puedes usar índices y todo eso.


Otra cosa que puedes hacer es:

$qb->andWhere($qb->expr()->like(''lower(o.name)'', '':name'')); $qb->setParameter(''name'', ''%''. strtolower($search) . ''%'');

Saludos.


$q = Doctrine_Query::create() $q->select(''t'') ->from(''database_table t'') ->where($q->expr()->like(''t.search_field'', '':search_text'')) ->setParameter(''search_text'', ''%''.strtolower($searchText).''%'');