Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1

TOPIC:

Champs calculés 23 Jan 2014 14:18 #12093

Bonjour,

Y a-t-il une possibilité d'utiliser des champs calculés ?

Dans mon cas, je voudrais un champ "catégorie" dont le contenu serait défini à partir du calcul de la différence entre la date du jour et la date présente dans un champ "date de naissance".

À défaut, serait-il possible de faire ce calcul à l'affichage de la vue (sans stockage du résultat) ?

Merci pour vos conseils

Gilles

Please Log in or Create an account to join the conversation.

Champs calculés 25 Jan 2014 11:17 #12100

  • admin
  • admin's Avatar
  • Offline
  • Administrator
  • Administrator
  • Chef
  • Posts: 3711
  • Thank you received: 986
Si le calcul est plutôt simple, moi je le réaliserais dans la vue. (view.html.php)

Si c'est plus compliqué et surtout si le calcul peut être demandé par d'autres vues => Model

Dans le model, c'est le plus propre.
if faut utiliser la fonction populateObjects() soit du model list ou du model item. Cela dépend du contexte.

Ensuite, il à l'intérieur de cette fonction, réalise le calcul et enregistre le ou les résultats dans des variables de l'objet ou de la liste. ($item ou $items)
Ce calcul devra être effectué seulement si l'appelant le demande. Tu utilise donc une variable d'état du model. Ce qui donne en algorithme :

SI (model->getState('calculer.le.resultat'))
{
// Stocke dans l'objet, mais pas dans la base de données.
$item->_monResultat1 = monCalcul();
}

La structure de la fonction populateObjects() se trouve dans la super classe (dossier classes)

Voilà. C'est juste pour donner une piste. J'espère que cela t'aidera à comprendre le concept.
Coding is now a piece of cake

Please Log in or Create an account to join the conversation.

Champs calculés 25 Jan 2014 11:21 #12101

  • admin
  • admin's Avatar
  • Offline
  • Administrator
  • Administrator
  • Chef
  • Posts: 3711
  • Thank you received: 986
// Et dans l'appelant, AVANT d'appeller getItem() ou getItems() :
model->setState('calculer.le.resultat', true)

// ensuite :
$item = model->getItem()

// Pour tester
echo $item->_monResultat1
Coding is now a piece of cake

Please Log in or Create an account to join the conversation.

Champs calculés 28 Jan 2014 14:51 #12112

admin wrote: Si le calcul est plutôt simple, moi je le réaliserais dans la vue. (view.html.php)
Si c'est plus compliqué et surtout si le calcul peut être demandé par d'autres vues => Model
Dans le model, c'est le plus propre.

Il faut donc aller modifier le fichier "model" après avoir générer le composant ?

il faut utiliser la fonction populateObjects() soit du model list ou du model item. Cela dépend du contexte.
Ensuite, il à l'intérieur de cette fonction, réalise le calcul et enregistre le ou les résultats dans des variables de l'objet ou de la liste. ($item ou $items)

Où puis-je trouver de la doc pour comprendre cela ?

Ce calcul devra être effectué seulement si l'appelant le demande. Tu utilise donc une variable d'état du model. Ce qui donne en algorithme :

SI (model->getState('calculer.le.resultat'))
{
// Stocke dans l'objet, mais pas dans la base de données.
$item->_monResultat1 = monCalcul();
}

La structure de la fonction populateObjects() se trouve dans la super classe (dossier classes)

L'objet, c'est le résultat de la requête ?

Voilà. C'est juste pour donner une piste. J'espère que cela t'aidera à comprendre le concept.

Merci pour la réponse, mais elle dépasse ma compréhension de Cook.
Comment puis approfondir mes connaissances (en français) ?

Please Log in or Create an account to join the conversation.

  • Page:
  • 1
Time to create page: 0.113 seconds

I jumped and started to work on a demo component... but 2 days later this demo component became the real component. I just showed today the end result to my customer and he turned to me and said... "this is more than I expected"... All of this is because Cook did cut about 70% of my work and provided me more ways to improve the usability of the component. The end result was 17 tables all related between than to generate a full dashboard for the travel agents. Thanks for Cook developers for such great tool. This component would not be possible to be done at short time with all the features in it
Griiettner (Forum)  

Get Started