- 1
[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)
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)
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
- 1