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

  [Opened] Dao - [error 501] Identifiant(s) manquant(s)

Posted by Yann.L on 09/01/2008 10:21

Bonjour, j'ai actuellement un probleme au niveau d'un crud :

Voici mon contrôleur

 class indicateurCtrl extends jControllerDaoCrud {
    // defini la dao a utiliser
    protected $dao = "indicateur~indicateur";
    // defini le formulaire a utiliser
    protected $form = "indicateur~indicateur";
    //utilisation du template list personnaliser
    protected $listTemplate = "indicateur~crud_list";
    // limite le nombre d'enregistrement par page
    protected $listPageSize = 12;
    // liste les enregistrements de la table T_Indicateur par ordre croissant
    protected $propertiesForRecordsOrder = array('IndicateurLib' => 'asc');
    // utilisation du template edit personnaliser
    protected $editTemplate = "indicateur~crud_edit";
    // utilisation du template view personnaliser
    protected $viewTemplate = "indicateur~crud_view";  
    // liste des propriétés affichées 
    protected $propertiesForList = array('IndicateurId', 'TypeIndicateurLib', 'IndicateurLib', 'IndicateurObjectif','TypeResultatUnite', 'IndicateurDirecteur'); 
    // Generation de la réponse
    protected function _getResponse() {
        $rep = $this->getResponse('html');
		$rep->title = "Gestion des Indicateurs";
        return $rep;
    }
 }

Voici ma DAO :

 <?xml version="1.0" encoding="UTF-8"?>
 <dao xmlns="http://jelix.org/ns/dao/1.0">
    <datasources>
        <primarytable name="T_Indicateur" realname="T_Indicateur" primarykey="IndicateurId" />
        <optionalforeigntable name="T_TypeIndicateur" realname="T_TypeIndicateur" primarykey="TypeIndicateurId" onforeignkey="FK_TypeIndicateurId" />
        <optionalforeigntable name="T_TypeResultat" realname="T_TypeResultat" primarykey="TypeResultatId" onforeignkey="FK_TypeResultatId" />
    </datasources>
    <record>
    <property name="IndicateurId" fieldname="IndicateurId" datatype="autoincrement"/>
    <property name="IndicateurLib" fieldname="IndicateurLib" datatype="text" required="true"/>
    <property name="IndicateurDirecteur" fieldname="IndicateurDirecteur" datatype="int" required="true"/>
    <property name="IndicateurObjectif" fieldname="IndicateurObjectif" datatype="string" required="true" maxlength="45"/>
    <property name="FK_TypeIndicateurId" fieldname="FK_TypeIndicateurId" datatype="int" required="true"/>
    <property name="FK_TypeResultatId" fieldname="FK_TypeResultatId" datatype="int" required="true"/>
    <property name="TypeIndicateurLib" fieldname="TypeIndicateurLib" datatype="string" required="true" maxlength="255" table="T_TypeIndicateur" />
    <property name="TypeResultatUnite" fieldname="TypeResultatUnite" datatype="string" required="true" maxlength="45" table="T_TypeResultat" />
    </record>
 </dao>

Et voici mon form :

 <?xml version="1.0" encoding="utf-8"?>
 <forms xmlns="http://jelix.org/ns/forms/1.0">
 <menulist ref="FK_TypeIndicateurId" dao="typeindicateur~typeindicateur" daomethod="findAll" daolabelproperty="TypeIndicateurLib" daovalueproperty="TypeIndicateurId" required="true">
    <label>Type d'indicateur</label>
 </menulist>
 <textarea ref="IndicateurLib" required="true">
	<label>Libellé de l'indicateur</label>
 </textarea>
 <checkbox ref="IndicateurDirecteur">
    <label>Indicateur de direction ?</label>
    <help>Cochez cette case si vous voulez que cet indicateur soit présent dans les objectifs de direction</help>
 </checkbox>
 <input ref="IndicateurObjectif" required="true" maxlength="45">
	<label>Objectif de l'indicateur</label>
 </input>
 <menulist ref="FK_TypeResultatId" dao="resultat~resultat" daomethod="findAll" daolabelproperty="TypeResultatUnite" daovalueproperty="TypeResultatId" required="true" >
    <label>Unité</label>
 </menulist>
 <submit ref="_submit">
	<label>Valider</label>
 </submit>
 </forms>

et voila l'erreur qui se produit lorsque que je tente de créer ou de voir un enregistrement :

 [warning 1] array_combine() [<a href='function.array-combine'>function.array-combine</a>]: Both parameters should have an equal number of elements F:\wamp\www\tabbord\lib\jelix\dao\jDaoFactoryBase.class.php 175
 [error 501] Identifiant(s) manquant(s) F:\wamp\www\tabbord\lib\jelix\dao\jDaoFactoryBase.class.php 178

Cependant, l'enregistrement dans la base de donnée s'effectue correctement...

Je ne comprend pas trop d'où ça peut venir, merci pour votre aide.

  [Opened] Re: Dao - [error 501] Identifiant(s) manquant(s)

Reply #1 Posted by laurentj on 09/01/2008 11:26

Salut,

je vois pas d'où l'erreur peut venir. vide ton cache, refait le test, et si ça marche toujours pas, fournit la version de jelix utilisée, le type de base, et donne le contenu de la méthode getPrimaryKeyNames du fichier dao compilé correspondant dans ton cache.

  [Opened] Re: Dao - [error 501] Identifiant(s) manquant(s)

Reply #2 Posted by Yann.L on 09/01/2008 11:38

Moi non plus je ne comprend pas, je viens de supprimer et recréer la DAO en faisant un C/C du code de mon post et maintenant ça fonctionne ... c'est plutot magic ^^.

Sinon j'utilise Jelix 1.0-5 , avec une base de donnée MySQL 5.0.51a et PHP 5.2.5

 
Page
  1. Re: Dao - [error 501] Identifiant(s) manquant(s)