Bonjour,
Voila je rencontre un problème au moment d'un save. Voici l'erreur :
Voici l'extrait de mon schema :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id' cannot be null
Voici l'extrait de mon fichier action :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 CmsTypeDocument: actAs: Timestampable: ~ I18n: fields: [label, description] actAs: Sluggable: { fields: [label], uniqueBy: [lang, label] } columns: label: { type: string(255) , notnull: false } description: { type: clob(1000000) , notnull: false } position: { type: integer , notnull: false } cms_user_id: { type: integer , notnull: true } relations: CmsUser: { local: cms_user_id, foreign: id, foreignAlias: CmsTypeDocuments, onDelete: CASCADE } # ------------------- CmsDocument: actAs: Timestampable: ~ I18n: fields: [name, description] actAs: Sluggable: { fields: [name], uniqueBy: [lang, name] } columns: name: { type: string(255) , notnull: false } description: { type: clob(1000000) , notnull: false } size: { type: integer , notnull: false } doc_file: { type: blob , notnull: false } doc_mimetype: { type: string(255) , notnull: false } position: { type: integer , notnull: false } cms_user_id: { type: integer , notnull: true } cms_type_document_id: { type: integer , notnull: true }#<-- Revoir la règle ! relations: CmsUser: { local: cms_user_id, foreign: id, foreignAlias: CmsDocuments, onDelete: CASCADE } CmsTypeDocument: { local: cms_type_document_id, foreign: id, foreignAlias: CmsDocuments, onDelete: CASCADE }
Voici ma classe CmsDocumentsForm.class.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 protected function processForm(sfWebRequest $request, sfForm $form) { $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); if ($form->isValid()) { $cms_document = $form->save(); } }
Ici je transforme mon champ doc_file en fichier d'upload.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 class CmsDocumentForm extends BaseCmsDocumentForm { public function configure() { parent::setup(); unset($this['created_at'],$this['updated_at']); $this->embedI18N(array('fr','en')); $this->widgetSchema->setLabel('fr', 'Français'); $this->widgetSchema->setLabel('en', 'Anglais'); $widget_schema = $this->getWidgetSchema(); //Transforme le combo des user en champ caché. $widget_schema['cms_user_id'] = new sfWidgetFormInputHidden(); //Transforme le champ longtexte en file $widget_schema['doc_file'] = new sfWidgetFormInputFile(); $validator_schema = $this->getValidatorSchema(); $validator_schema['cms_user_id'] = new sfValidatorDoctrineChoice(array('model' => 'CmsUser')); $validator_schema['doc_file'] = new sfValidatorFile(); } }
Quelqu'un aurai une idée du problème ?
Merci
Partager