Привет, ребята, у меня странная проблема, и я ищу помощи.
Я использую laravel 7, и один из моих запросов явно кэшируется или что-то в этом роде, вот мой код для объяснения:
Вот очень простой метод в одном из моих контроллеров:
public function chartEstadosVoluntarios(){
$estados = DB::table("voluntarios")
->selectRaw("estado, count(*) as total")
->whereNotNull('estado')
->groupBy("estado")
->get();
return response()->json($estados,200);
}
Если я попал в маршрут на chrome, результат будет:
[
{
"estado": "Derivado al 147",
"total": 2
},
{
"estado": "Derivar a mesa de ayuda",
"total": 7
},
{
"estado": "Pendiente",
"total": 3
},
{
"estado": "Reasignar Adulto Mayor",
"total": 50
},
{
"estado": "Resolución logística 24hs",
"total": 4
},
{
"estado": "Resuelto",
"total": 119
}
]
Но это неправильно, это не настоящий результат, вот экран для того же запроса в MySQL Workbench:
Я использую тот же пользователь в рабочей среде и laravel. Другое дело, что если я немного изменю запрос, то я получу правильный результат, например:
$estados = DB::table("voluntarios")
->selectRaw("estado, count(*) as total, 'test'")//adding 'test' to select
->whereNotNull('estado')
->groupBy("estado")
->get();
Затем я снова нажимаю на браузер, и результат:
[
{
"estado": "Pendiente",
"total": 9687,
"test": "test"
},
{
"estado": "Resuelto",
"total": 16415,
"test": "test"
}
]
Если я go вернусь с изменениями, я снова получу неверные результаты. Итак, я действительно не понимаю, что происходит, любая точка направления будет оценена.
РЕДАКТИРОВАТЬ, дополнительная информация добавлена из ответов:
до Sql () метод выдает тот же запрос (копия вставлена из браузера):
"select estado, count(*) as total from `voluntarios` where `estado` is not null group by `estado`";
Метод to Sql () с 'test' в select:
"select estado, count(*) as total, 'test' from `voluntarios` where `estado` is not null group by `estado`"
То же результаты в Tinker:
Понижен с laravel v7.10.3 до v7.6.2 (тот, который у меня был перед запуском composer обновить сегодня ), но проблема остается.
РЕДАКТИРОВАТЬ 2
Произошла странная вещь, я недавно использовал другую часть системы, которая редактирует поле "estado" таблицы "voluntar" ios ", чтобы увидеть, что произойдет, и теперь запрос выдает правильные результаты. это как будто что-то разблокировалось после редактирования таблицы. Что бы это могло быть? Раньше я проверял, что у пользователя не было открытых транзакций.
Заранее спасибо.