Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [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

Reply #1 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

Reply #2 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.

 
Page
  1. petit souci de view dans jControllerDaoCrud si param empty