Welcome, Guest
Username: Password: Remember me

TOPIC: Champs calculés

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

  • Gilles57
  • Gilles57's Avatar
  • Offline
  • New Member
  • Posts: 5
  • Karma: 0
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
The administrator has disabled public write access.

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

  • admin
  • admin's Avatar
  • Online
  • Administrator
  • Chef
  • Posts: 3711
  • Thank you received: 984
  • Karma: 140
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
The administrator has disabled public write access.

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

  • admin
  • admin's Avatar
  • Online
  • Administrator
  • Chef
  • Posts: 3711
  • Thank you received: 984
  • Karma: 140
// 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
The administrator has disabled public write access.

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

  • Gilles57
  • Gilles57's Avatar
  • Offline
  • New Member
  • Posts: 5
  • Karma: 0
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) ?
The administrator has disabled public write access.
Time to create page: 0.109 seconds

Get Started