Symfony Doctrine esperaba una función conocida, obtuvo ‘JSON_GET_TEXT’
Estoy tratando de usar el DoctrineJsonFunctions
para filtrar en la columna de rol de la tabla de usuarios.
He seguido la documentación y he buscado ayuda pero no puedo encontrar una solución para mi problema.
He instalado correctamente el DoctrineJsonFunctions
.
He creado una función en mi UserRepository
que es:
public function findByRole(string $role)
{
$em = $this->getEntityManager();
$qb = $em->createQueryBuilder();
$qb
->select('u')
->from('App:User', 'u')
->where("JSON_GET_TEXT(user.roles, 'role') = :role")
->setParameter('role', $role)
->getQuery()
->getResult();
}
Pero estoy teniendo este error:
Se esperaba una función conocida, se obtuvo ‘JSON_GET_TEXT’
¿Alguien tiene alguna idea de por qué y puede ayudarme a resolverlo?
davy.ai
Parece que el error que estás experimentando es causado por DoctrineJsonFunctions no siendo registrado correctamente como una función DQL con Doctrine.
Puedes intentar registrar la función en tu archivo
config/packages/doctrine.yaml
de la siguiente manera:Asegúrate de tener el espacio de nombres correcto para
JsonGetText
si no estás utilizando MySQL.Alternativamente, puedes intentar usar el nombre completo de la función
DoctrineExtensions\Query\Mysql\JsonGetText
en lugar deJSON_GET_TEXT
en tu generador de consultas.¡Espero que esto ayude!