J'ai un formulaire avec une entrée qui est optionnelle mais je ne peux pas valider le formulaire si l'utilisateur ne le remplit pas car c'est une clé étrangère et Doctrine me montre une erreur.Comment définir une clé étrangère sur null? (symfony)
SQLSTATE[HY000]: General error: 1452 Cannot add or update a child row: a foreign key constraint fails (`logements`.`bail`, CONSTRAINT `bail_ibfk_3` FOREIGN KEY (`locataire2`) REFERENCES `locataire` (`nud`) ON DELETE CASCADE ON UPDATE CASCADE)
J'ai essayé dans phpMyAdmin la même demande et il fonctionne correctement: je peux définir la clé étrangère null. Donc, comment puis-je définir la clé étrangère sur null et valider le formulaire sans erreur de Doctrine?
EDIT
Bail:
connection: doctrine
tableName: bail
columns:
id:
type: integer(2)
fixed: false
unsigned: true
primary: true
autoincrement: true
locataire1:
type: string(20)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
locataire2:
type: string(20)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
logement:
type: integer(2)
fixed: false
unsigned: true
primary: false
notnull: false
autoincrement: false
datedeb:
type: date(25)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
datefin:
type: date(25)
fixed: false
unsigned: false
primary: false
default: '0000-00-00'
notnull: false
autoincrement: false
colloc:
type: integer(4)
fixed: false
unsigned: false
primary: false
default: '0'
notnull: false
autoincrement: false
bailglissant:
type: string(12)
fixed: false
unsigned: false
primary: false
default: 'Non spécifié'
notnull: false
autoincrement: false
relations:
Locataire:
local: locataire1
foreign: nud
type: one
Logement:
local: logement
foreign: id
type: one
Locataire_3:
class: Locataire
local: locataire2
foreign: nud
type: one
Pourriez-vous s'il vous plaît coller votre définition de schéma et un formulaire? Si votre champ est réellement défini comme facultatif, vous ne devriez pas recevoir ce message. L'erreur provient de la base de données, il semble donc que la doctrine essaie d'y mettre un '0'. –
Le widget de ma forme est "locataire2" – Elorfin