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

  [Opened] [résolu] CRUD - problème sur le save

Posted by Dunbo on 05/26/2011 11:53

Bonjour à tous,

Je fais mes premiers pas sur Jelix et je viens de faire un controller qui me permet de gérer une table en CRUD. Après quelques problèmes je finit par faire fonctionner le formulaire en dehors du fait que lorsque je veux faire "save" il m'affiche l'erreur suivante :

[[exception 102]] Action ./index.php/gestimm/menuCrud : method ./index.php/gestimm/menuCrud of the controller class defaultCtrl doesn't exists (file : /var/www/jelix/gestimm/modules/gestimm/controllers/default.classic.php) /var/www/jelix/lib/jelix/core/jCoordinator.class.php 233

<code>
	0	jCoordinator->getController()	/var/www/jelix/lib/jelix/core/jCoordinator.class.php : 156
	1	jCoordinator->process()	/var/www/jelix/gestimm/www/index.php : 19
</code>

Ce problème n'intervient pas lorsque je sauve un formulaire vide mais il y quelque chose d'étrange c'est qu'en fait je retrombe sur la page par défaut avec une méthode "savecreate" comme si save n'appelait pas le bon controlleur.

Je vous remercie d'avance pour l'aide que vous pourrez m'apporter

  [Opened] CRUD - problème sur le save

Reply #1 Posted by laurentj on 05/26/2011 15:07

Bonjour,

Il semble que ton appli se mélange les pédales pour les noms d'action et de méthode. Tu as touché quelque chose à la configuration par défaut pour les urls ? Tu utilises le moteur d'url significant ? si oui tu as mis quoi dans ton urls.xml ?

Et tu as indiqué quoi dans ton template (si tu en a fait un) ? C'est quoi l'url complete pour afficher le formulaire ?

  [Opened] CRUD - problème sur le save

Reply #2 Posted by Dunbo on 05/26/2011 16:06

Bonjour,

Et merci de ta prompt réponse, je n'ai rien touché sur les URLs. j'ai fait la chose suivante :

  • une table avec trois champs id_menu name et action qui se nomme www_menu
  • un fichier menu.dao.xml stocké dans le répertoire daos de mon module dont le code est
<?xml version="1.0" encoding="UTF-8"?>
<dao xmlns="http://jelix.org/ns/dao/1.0">
<code>
    <datasources>
        <primarytable name="www_menu" realname="www_menu" primarykey="id_menu" />
    </datasources>
    <record>
        <property name="id_menu" fieldname="id_menu" datatype="numeric" required="true" maxlength="655360"/>
        <property name="name" fieldname="name" datatype="varchar" maxlength="50"/>
        <property name="action" fieldname="action" datatype="varchar" maxlength="200"/>
        <!--<property name="" fieldname="" datatype="string/int/float/date"
        required="yes" maxlength="" minlength="" regexp="" sequence=""
        updatepattern="" insertpattern="" selectpattern=""/>-->
    </record>
    <factory>
        <!--<method name="findByStage" type="select/selectfirst/delete/update/php">
            <parameter name="" />
            <values>
                <value property="" value="" />
            </values>
            <conditions logic="and/or">
                <eq property="" value="" />
            </conditions>
            <order>
                <orderitem property="" way="asc/desc" />
            </order>
            <limit offset="" count=""/>
            <body><![CDATA[
            ]]></body>
        </method>-->
    </factory>
</dao> </code>
  • un fichier menu.form.xml stocké dans le répertoire forms de mon module dont le code est :
<?xml version="1.0" encoding="utf-8"?>
<form xmlns="http://jelix.org/ns/forms/1.1">
<code>
	<input ref="id_menu" type="integer">
		<label>ID menu</label>
	</input>
	<input ref="name" type="string">
		<label>Name</label>
	</input>
	<input ref="action" type="string">
		<label>Action</label>
	</input>
	<submit ref="submit">
		<label>Save</label>
	</submit>
</form> </code>
  • un fichier menuCrud.classic.php qui est stocké dans le répertoire de monmodule et dont le code est :
<?php
class menuCrudCtrl extends jControllerDaoCrud{
<code>
	protected $dao = 'gestimm~menu';
	protected $form = 'gestimm~menu';

} ?>

</code>

Je ne compte pas le personnaliser car c'est juste un test sur DAO + Crud et cela me permet d'administrer mes menus

Merci encore pour ta réponse.

  [Opened] CRUD - problème sur le save

Reply #3 Posted by Dunbo on 05/26/2011 17:49

Bonjour,

Ca y est j'ai trouvé le problème mon champ action ne peut pas s'appeler comme cela jelix cherche une méthode action qui n’existe pas dans le controller CRUD et encore moins dans le controller default donc j'ai changé le nom dans la base de donnée et dans mes fichiers form et dao et tout roule.

Je mets à Résolu.

A bientôt ;-)

  [Opened] [résolu] CRUD - problème sur le save

Reply #4 Posted by laurentj on 05/26/2011 18:01

oui je confirme, il ne faut pas de champs ou paramètres ayant pour nom "action" ou "module", ils sont réservés :)

 
Page
  1. [résolu] CRUD - problème sur le save