升级后查询范围置后了,如果之前没写闭包的or查询会出现问题
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 28/100
Línea de trabajo
Start with the ORM query-building path used by scope('zuhu'), whereOr(), and select(), then reproduce the two SQL forms shown in the issue. Trace why the scope predicate is placed inside the OR expression after the upgrade. Done means the scope condition is grouped with the intended precedence and the reported query produces the expected SQL; no files or tests are named.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
升级后查询范围置后了,会之前没写闭包的or查询出现问题
比如:
User::scope('zuhu')->whereOr([['name','like','%'.$keyword.'%'],['email','like','%'.$keyword.'%'],['mobile','like','%'.$keyword.'%']])->select();
最终的语句是
SELECT * FROM user WHERE ( name LIKE '%12345678901%' OR email LIKE '%12345678901%' OR mobile LIKE '%12345678901%' AND zuhu_id = '1' ),
以前的语句是
SELECT * FROM user WHERE zuhu_id = '1' AND ( name LIKE '%12345678901%' OR email LIKE '%12345678901%' OR mobile LIKE '%12345678901%')
为啥要把scope条件置后呢?
- Lenguaje dominante
- PHP
- Estrellas
- 437
- Forks
- 188
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de top-think/think-orm
-
升级 PHP 8.5 后报错Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
-
getChangedData() 松散比较导致前导零丢失Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
在php7.3及以上版本中,会出错Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
-
模型的`data()`方法调用之后,之前的赋值丢失Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
Todos los issues de top-think/think-orm
Issues similares
-
Awaiting Triage
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
Los mantenedores suelen responder en 1 día
-
reproduced
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
anomalyco/opencode#58664 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 87/100
WordPress/phpunit-test-runner#364 ·
Los mantenedores suelen responder en 4 días
-
domain/framework Platform(Default) priority/high
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 2 días