Según el título, ¿cómo coincidiría en una expresión regular con el generador de consultas de Doctrine 2? Básicamente, estoy tratando de generar babosas únicas.Generador de consultas Regex con Doctrine 2?
Aquí está mi implementación actual. Yo genero la babosa. Luego verifico si hay babosas en uso como esta babosa. Si los hay, agregaré un - {number} al final de la babosa, donde {number} es el número más bajo que aún no está en uso.
$qb->select(array('partial o.{id, slug}'))
->from('Foo\Bar\Entity\Object', 'o')
->where($qb->expr()->like('o.slug', ':slug'));
$slug = new SlugNormalizer($text);
$qb->setParameter('slug', $slug->__toString().'-%');
El problema aquí es babosa LIKE% podía igualar foo-bar-1, foo-bar-2, Y foo-bar-no-la-misma-babosa. Lo que sería más limpio es una expresión regular que busca REGEX slug - (\ d +) o algo similar.
¿Alguna manera de hacer esto con el generador de consultas de Doctrine 2?
Esto no funciona. La clase Doctrine \ ORM \ Query \ Expr \ Comparison solo tiene los siguientes operadores: const EQ = '='; const NEQ = '<>'; const LT = '<'; const LTE = '<='; const GT = '>'; const GTE = '> ='; ¡NO HAY NINGUNA OPCIÓN DE REGEXP! Además, no es una operación de comparación ... ¿por qué viviría allí en el 1er lugar? –
Tienes razón, no funciona. Pero es una operación de comparación. Dos operandos, un operador entre ellos, para mí es una comparación. – Maxence
Ah, cuando lo dices así, tal vez tengas razón. Podría ser una operación de comparación ... independientemente, je, no funciona. = [ –