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

  [Opened] Demande d'aide pour menulist et datasource

Posted by mica94 on 05/21/2015 14:22

Bonjour, j'ai un peu de mal a comprendre comment fonctionnent les menulist connectees a un DAO.

Voici mon fichier .form.xml

<menulist ref="categorie">
	<label>Catégorie</label>
	<datasource dao="myapp~chambre" method="findByHotel" labelproperty="cvalue" criteria="hotel_id" valueproperty="ckey">
</menulist>

et dans mon DAO myapp~chambres

    <record>
        <property name="id" fieldname="id" datatype="int" autoincrement="true"/>
        <property name="hotel_id" fieldname="hotel_id" datatype="int" required="true"/>
        <property name="categorie" fieldname="categorie" datatype="varchar" required="true"/>
        <property name="name" fieldname="name" datatype="varchar" required="true" maxlength="255"/>
</record>
<method name="findByHotel" type="select">
         <parameter name="hotel_id" />
         <conditions>
           <eq property="hotel_id" expr="$hotel_id" />
         </conditions>
         <order>
           <orderitem property="id" way="asc" />
         </order>
       </method>

Je veux donc recuperer mes categories de chambres selon un hotel_id que je recupere avec

$monId = $this->param('hotel_id');

Mais je ne saisis pas comment assigner dynamiquement ce $monId au criteria de mon menulist.

J'ai vu que cote PHP on peut ecrire ce genre de chose:

$monId = $this->params['id'];
$voyagesDao = jDao::get('myapp~voyages');
$voyage= $voyagesDao->get($monId);
$ctrl= new jFormsControlMenulist('categorie_0');
$ctrl->required=true;
$ctrl->label='Catégorie de chambre';
$ctrl->datasource= new jFormsDaoDatasource('myapp~chambres','findByHotel','hotel_id',$voyage->hotel_id,$monId);
		$form->addControl($ctrl);

mais je ne suis pas sur du tout de la syntaxe de la derniere ligne(je l'ai recuperee), et surtout comment j'envoie en parametre $monId.

Si quelqu'un peut me donner un coup de main, c'est cool

Merci

  [Opened] Demande d'aide pour menulist et datasource

Reply #1 Posted by laurentj on 05/28/2015 10:58

Bonjour,

Il y a une erreur sur

<datasource dao="myapp~chambre" method="findByHotel" labelproperty="cvalue" criteria="hotel_id" valueproperty="ckey">

labelproperty et valueproperty doivent être respectivement "id" et "name" si j'en crois le dao.

Et sinon, je ne comprend pas trop ce que tu cherches à faire au final, et à quel moment

 
Page
  1. Passage de variable entre _preCreate et _create // _preUpdate et _update >
  2. Demande d'aide pour menulist et datasource