- 1
[Opened] [[Résolu]] Utilisation de prepareDaoFromControls
Posted by ciblemedia on 11/28/2011 12:29
Bonjour à tous !
J'utilise jForms et dans ma fonction Save() je fais ceci :
function save() { $codecol = $this->param('c'); if(empty($codecol)){ $form = jForms::fill('colform'); }else{ $form = jForms::fill('colform',$codecol); } $verifform = true; if(!$form->check()){ $verifform = false; } if(!$verifform){ $rep = $this->getResponse('redirect'); $rep->action="coll:show"; return $rep; } else { // On contrôle les données saisies en fonction du type du collaborateur $user = jAuth::getUserSession(); $result = $form->prepareDaoFromControls('ficcol'); $result['daorec']->codetie = $user->codetie; $result['daorec']->codeuge = $user->codeuge; $result['daorec']->codeuser = $codeuser; if($result['toInsert']) { $result['daorec']->codeusercre = $user->login; $result['daorec']->libusercre = $user->libuser; $result['dao']->insert($result['daorec']); } else { $result['daorec']->codeusermaj = $user->login; $result['daorec']->libusermaj = $user->libuser; $result['dao']->update($result['daorec']); } $rep = $this->getResponse('redirect'); $rep->action="coll:end"; if(!empty($codecol)){ $rep->params = array('c' => $codecol); } return $rep; } }
Ce qui me pose problème, c'est $result['dao']->insert($result['daorec']);
et $result['dao']->update($result['daorec']);
. J'ai l'erreur suivante :
Error 500. A technical error has occured. Sorry for this trouble.
Pourtant j'ai le même code dans un autre module mais pour une autre table et ça fonctionne !
Je pensais que cela pouvait venir de ma DAO ou de mon formulaire mais je ne trouve pas...
Ci-dessous ma DAO :
<?xml version="1.0" encoding="UTF-8"?> <dao xmlns="http://jelix.org/ns/dao/1.0"> <datasources> <primarytable name="ficcol" realname="ficcol" primarykey="codecol" /> </datasources> <record> <property name="codetie" fieldname="codetie" datatype="varchar" required="true" maxlength="20"/> <property name="codeuge" fieldname="codeuge" datatype="varchar" required="true" maxlength="20"/> <property name="typecol" fieldname="typecol" datatype="varchar" required="true" maxlength="20"/> <property name="codecol" fieldname="codecol" datatype="int" autoincrement="true"/> <property name="civilite" fieldname="civilite" datatype="varchar" required="true" maxlength="20"/> <property name="nom" fieldname="nom" datatype="varchar" required="true" maxlength="60"/> <property name="prenom" fieldname="prenom" datatype="varchar" required="true" maxlength="60"/> <property name="adr1" fieldname="adr1" datatype="varchar" default="" maxlength="60"/> <property name="adr2" fieldname="adr2" datatype="varchar" default="" maxlength="60"/> <property name="adr3" fieldname="adr3" datatype="varchar" default="" maxlength="60"/> <property name="adrcp" fieldname="adrcp" datatype="varchar" default="" maxlength="60"/> <property name="adrville" fieldname="adrville" datatype="varchar" default="" maxlength="60"/> <property name="adrpays" fieldname="adrpays" datatype="varchar" default="" maxlength="60"/> <property name="tel" fieldname="tel" datatype="varchar" default="" maxlength="20"/> <property name="mobile" fieldname="mobile" datatype="varchar" default="" maxlength="20"/> <property name="telaux" fieldname="telaux" datatype="varchar" default="" maxlength="20"/> <property name="email" fieldname="email" datatype="varchar" default="" maxlength="120"/> <property name="codeuser" fieldname="codeuser" datatype="varchar" required="true" maxlength="120"/> <property name="mdpuser" fieldname="mdpuser" datatype="varchar" default="" maxlength="50"/> <property name="datecre" fieldname="datecre" datatype="datetime" required="true" insertpattern="NOW()"/> <property name="codeusercre" fieldname="codeusercre" datatype="varchar" required="true" maxlength="20"/> <property name="libusercre" fieldname="libusercre" datatype="varchar" required="true" maxlength="60"/> <property name="datemaj" fieldname="datemaj" datatype="datetime" updatepattern="NOW()"/> <property name="codeusermaj" fieldname="codeusermaj" datatype="varchar" maxlength="20"/> <property name="libusermaj" fieldname="libusermaj" datatype="varchar" maxlength="60"/> <property name="identite" datatype="string" selectpattern="CONCAT(nom,', ',prenom)"/> <!--<property name="" fieldname="" datatype="string/int/float/date" required="yes" maxlength="" minlength="" regexp="" sequence="" updatepattern="" insertpattern="" selectpattern=""/>--> </record> <factory> <method name="listCol" type="select"> <parameter name="codetie" /> <parameter name="codeuge" /> <conditions> <eq property="codetie" expr="$codetie" /> <eq property="codeuge" expr="$codeuge" /> </conditions> </method> <method name="getCol" type="selectfirst"> <parameter name="codecol" /> <conditions> <eq property="codecol" expr="$codecol" /> </conditions> </method> </factory> </dao>
Et voici mon formulaire :
<?xml version="1.0" encoding="utf-8"?> <form xmlns="http://jelix.org/ns/forms/1.1"> <hidden ref="c" /> <menulist ref="typecol" required="true"> <label>Type</label> <item value="UTILISATEUR">Utilisateur</item> <item value="CHAUFFEUR">Chauffeur</item> <hint>Le type de collaborateur est obligatoire.</hint> </menulist> <menulist ref="civilite" required="true"> <label>Civilité</label> <item value="M.">Monsieur</item> <item value="MME">Madame</item> <item value="MLLE">Mademoiselle</item> <hint>La civilité est obligatoire.</hint> </menulist> <input ref="nom" required="true" maxlength="60"> <label>Nom</label> <hint>Le nom est obligatoire.</hint> </input> <input ref="prenom" required="true" maxlength="60"> <label>Prénom</label> <hint>Le prénom est obligatoire.</hint> </input> <input ref="adr1" maxlength="60"> <label>Adresse 1</label> </input> <input ref="adr2" maxlength="60"> <label>Adresse 2</label> </input> <input ref="adr3" maxlength="60"> <label>Adresse 3</label> </input> <input ref="adrcp" maxlength="60"> <label>Code Postal</label> </input> <input ref="adrville" maxlength="60"> <label>Ville</label> </input> <input ref="tel" maxlength="20"> <label>Téléphone</label> <help>(Ex: 0102030405)</help> </input> <input ref="mobile" maxlength="20"> <label>Mobile</label> </input> <input ref="telaux" maxlength="20"> <label>Autre téléphone</label> </input> <input ref="email" maxlength="120"> <label>Email</label> </input> <submit ref="_submit"> <label>Valider</label> </submit> </form>
D'avance merci !
Yann
[Opened] Utilisation de prepareDaoFromControls
Posted by laurentj on 11/28/2011 12:58
Bonjour,
Error 500. A technical error has occured. Sorry for this trouble.
il faut aller voir dans les logs (tonappli/var/log), ou activer la debugbar si tu es en jelix 1.3. Tu auras alors la vraie erreur.
[Opened] Utilisation de prepareDaoFromControls
Posted by ciblemedia on 11/28/2011 13:53
Bonjour,
Merci, je vais regarder les logs. Pour la debugbar, comment fait-on pour l'activer ?
[Opened] Utilisation de prepareDaoFromControls
Posted by laurentj on 11/28/2011 16:21
C'est dans le manuel ;-)
- 1