группировка по запросу работает php 5.4, а не php 7 - PullRequest
0 голосов
/ 28 мая 2020

Я обновляю свой проект с PHP 5.4, Laravel 4.2 до PHP 7.4, Laravel 6. Моя база данных: MySql 5.5.60-0 + deb7u1, это не изменилось.

У меня есть запрос, который работает с PHP 5.4, Laravel 4.2, который не работает с PHP 7.4, Laravel 6, и я не могу понять, почему. Ниже мой запрос и моя ошибка.

Ошибка:

Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1055 'iddev1.c.formattedName' isn't in GROUP BY
(SQL:
SELECT
`c`.`formattedName`,
`d`.`documentNo`,
`d`.`status`,
`d`.`dateOpen`,
`d`.`dateClosed`,
SUM(t.amountTotal) AS sum_total
FROM `transactions` AS `t`
LEFT JOIN `documents` AS `d` ON `d`.`id` = `t`.`documentId`
LEFT JOIN `contacts` AS `c` ON `c`.`id` = `d`.`contactId`
WHERE `t`.`tenantId` = 15 AND `t`.`dateDeleted` IS NULL
 AND `t`.`date` >= '2019-01-01 00:00:00' AND `t`.`date` <= '2019-12-31 00:00:00'
GROUP BY `t`.`documentId`
ORDER BY `c`.`formattedName` ASC, `d`.`documentNo` ASC
)

Почему я получаю эту ошибку с PHP 7? Запрос действителен, я могу успешно выполнить запрос к базе данных в Heidi SQL. Он терпит неудачу, только когда я запускаю его через PHP 7 и Laravel 6.

1 Ответ

2 голосов
/ 28 мая 2020

Вы можете обновить режим strict до false в файле базы данных

'strict' => false

значение по умолчанию истинно

Пожалуйста, проверьте ниже массив config / database. php

'mysql' => ['strict' => false]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...