Closed z3bra closed 4 years ago
Bonjour,
Tu peux copier le fichier monolog.yaml prséent dans config/packages/dev/ ou config/packages/prod/ dans config/packages/[MON_ENVIRONNEMENT]/
Cordialement,
Génial, j'ai des logs ! Merci !
Concernant le problème de base, il provient de la contrainte d'unicité des utilisateurs sur le nom de famille:
[2020-09-11 08:23:33] request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\Exception\UniqueConstraintViolationException: "An exception occurred while executing 'UPDATE user SET firstname = ?, lastname = ?, tel1 = ? WHERE id_user = ?' with params ["[Prénom]", "[Nom]", "[REDACTED]", 75]: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '[Nom]' for key 'lastname'" at /htdocs/easyamap/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 55 {"exception":"[object] (Doctrine\\DBAL\\Exception\\UniqueConstraintViolationException(code: 0): An exception occurred while executing 'UPDATE user SET firstname = ?, lastname = ?, tel1 = ? WHERE id_user = ?' with params [\"[Prénom]\", \"[Nom]\", \"[REDACTED]\", 75]:\n\nSQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '[Nom]' for key 'lastname' at /htdocs/easyamap/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:55, Doctrine\\DBAL\\Driver\\PDOException(code: 23000): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '
[Nom]' for key 'lastname' at /htdocs/easyamap/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:123, PDOException(code: 23000): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '[Nom]' for key 'lastname' at /htdocs/easyamap/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:121)"} []
Je pensais que la contrainte d'unicité se faisait sur le champs "username", mais apparement non. Nous avons en effet deux adhérents avec le même nom de famille. Pour l'instant nous avons pu contourner le problème en jouant avec les majuscules.
Je pense que les champs username ou email seraient plus appropriés pour cette contrainte.
La contrainte d'unicité se fait effectivement sur username. Il faut effectivement enlever celle de lastname en base de données (reliquat d'une ancienne version) Il faudra que je le modifie dans le script SQL.
Ah, étrange. J'ai pourtant utilisé la dernière version du script SQL, et ça m'a mis la contrainte sur "lastname":
MariaDB [easyamap]> desc user;
+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| id_user | int(11) | NO | PRI | NULL | auto_increment |
| email | varchar(255) | YES | | NULL | |
| username | varchar(255) | YES | | NULL | |
| firstname | varchar(255) | YES | | NULL | |
| lastname | varchar(255) | NO | UNI | NULL | |
| password | varchar(255) | YES | | NULL | |
| roles | varchar(255) | YES | | NULL | |
| is_adherent | int(1) | NO | | 1 | |
| is_admin | tinyint(1) | YES | | 0 | |
| is_active | tinyint(1) | YES | | 1 | |
| created_at | date | YES | | NULL | |
| last_connection | date | YES | | NULL | |
| tel1 | varchar(255) | YES | | NULL | |
| tel2 | varchar(255) | YES | | NULL | |
| address | varchar(255) | YES | | NULL | |
| zipcode | varchar(5) | YES | | NULL | |
| town | varchar(255) | YES | | NULL | |
+-----------------+--------------+------+-----+---------+----------------+
17 rows in set (0.011 sec)
Je modifie ça du coup. Pour référence:
ALTER TABLE user DROP INDEX lastname;
ALTER TABLE user MODIFY username varchar(255) NOT NULL;
ALTER TABLE user ADD UNIQUE INDEX username (username);
J'héberge moi-même easyamap (OpenBSD 6.7, php 7.3, nginx 1.16.1), et j'obtiens une erreur 500 à la création/modification des comptes utilisateurs.
J'ai cherché à obtenir des logs, mais le répertoire
var/log
reste vide. Comment puis-je activer les logs de l'application pour comprendre d'où provient cette erreur ?