- 1
[Opened] petit souci de view dans jControllerDaoCrud si param empty
Posted by Ghost on 04/26/2009 17:25
bonjour,
j'ai un controleur de type jControllerDaoCrud qui affiche bien la liste et j'ai une template de view comme suit :
<h1>{@file~file.title.view@}</h1> {if $FileValid} {formdata $form} <p> <b>{ctrl_label 'name'} : </b>{ctrl_value 'name'} </p> <p> <b>{ctrl_label 'description'} : </b>{ctrl_value 'description'} </p> <p> <b>{ctrl_label 'nb_rows'} : </b>{ctrl_value 'nb_rows'} </p> <p> <b>{ctrl_label 'date_creation'} : </b>{ctrl_value 'date_creation'} </p> {/formdata} <hr /> Détails du fichier par Origine :<br> <table border=1> <tr><td>Origine</td><td>Nombre</td></tr> {foreach $DetailsByOrigins as $Details} <tr> <td width="200px">{$Details->org_nom}</td> <td width="50px">{$Details->CountFiche}</td> </tr> {/foreach} </table> {else} <p>Erreur de lecture d'enregitrement</p> {/if} <hr /> <a href="{jurl $listAction}" class="crud-link">{@file~file.link.return.to.list@}</a>
Avec cette url tout s'affiche bien puisque l'enregistrement avec le paramètre id existe :
http://localhost/testapp/index.php?id=41&module=file&action=file:view
mais si je change id=41 pour y mettre vide ou une lettre
http://localhost/testapp/index.php?id=r&module=file&action=file:view http://localhost/testapp/index.php?id=&module=file&action=file:view
il m'affiche l'erreur suivante :
[exception 810] Impossible de récupérer le record dao file~file correspondant au formid du formulaire file~file E:\DEV\www\lib\jelix\forms\jFormsBase.class.php 248
En effet dans la classe jControllerDaoCrud la fonction view :
function view(){ $id = $this->param('id'); if( $id === null ){ $rep = $this->getResponse('redirect'); $rep->action = $this->_getAction('index'); return $rep; } $rep = $this->_getResponse(); // we're using a form to display a record, to have the portunity to have // labels with each values. We need also him to load easily values of some // of controls with initControlFromDao (to use in _view method). $form = $this->_createForm($id); $form->initFromDao($this->dao, $id, $this->dbProfile); ... ... ...etc... }
l'erreur, je la comprend et j'ai tenté de surcharger _createForm mais sans succès. Avez vous une idée ?
merci d'avance pour toute proposition
[Opened] Re: petit souci de view dans jControllerDaoCrud si param empty
Posted by laurentj on 04/27/2009 22:39
Bonjour,
redefini la methode view.
Mais bon, sauf si tu as des cas d'utilisation qui fait que cela est inacceptable d'avoir ce message d'erreur, à priori si on en arrive là, c'est parce que le gars l'a voulu. Donc je dirais, tant pis pour lui.
Si tu ne veux pas ce message d'erreur explicite, tu peux aussi, en production, faire en sorte qu'il s'affiche un message d'erreur "generaliste". Voir la config du gestionnaire d'erreur.
[Opened] Re: petit souci de view dans jControllerDaoCrud si param empty
Posted by Ghost on 04/27/2009 23:04
EN effet c'est ce que je me suis dit.
Hé bien, je vais laisser pour le moment ainsi et faire la gestion d'erreur généraliste comme tu le conseilles un peu plus tard.
Merci beaucoup.
- 1