13.6.3.26 Doc::getAttributeValue()
13.6.3.26.1 Description
mixed getAttributeValue ( string $idAttribute )
Retourne la valeur d'un attribut du document.
13.6.3.26.1.1 Avertissements
Le retour de cette méthode peut être utilisé pour mettre à jour des valeurs avec la méthode Doc::setAttributeValue(). Par contre, ces valeurs typées sont incompatibles avec la méthode Doc::setValue() qui prend en argument des valeurs brutes.
13.6.3.26.2 Liste des paramètres
- [int] (string)
idAttribute - Identifiant de l'attribut
13.6.3.26.3 Valeur de retour
Retourne la valeur typée de l'attribut en fonction des types d'attributs :
-
date,timestamp - Les dates sont retournées avec un objet de la classe
DateTime(classe interne de PHP). time- Les temps sont retournés avec le type
stringsous la forme "HH:MM:SS". -
file,image - Les pointeurs de fichiers sont retournés sous la forme "[mimeType]|[vaultId]|[fileName]".
int- Les nombres entiers sont retournés avec le type
int. -
double,money - Les nombres décimaux sont retournés avec le type
float.
Les autres types sont retournés sous forme de chaîne de caractère (type
string).
Les valeurs multiples sont retournées avec un objet de type array. Les valeurs
multiples ayant aussi des valeurs multiples (cas des attributs multiples dans
les tableaux) sont retournés avec un objet de type array[] (tableau à 2
dimensions).
Si une valeur est vide, la valeur null sera retournée. Dans le cas d'un
attribut multiple, le retour pour une valeur vide (aucune valeur) sera un
tableau vide array().
Pour les attributs de type array, la valeur retournée est un tableau à deux
dimensions. La première dimension est l'index (numérique - 0 à n) de la
rangée et la deuxième est l'identifiant de l'attribut. Chaque élément contient
une valeur typée.
13.6.3.26.4 Erreurs / Exceptions
Retourne une exception Dcp\Exception dans les cas suivants :
- L'attribut n'existe pas
- ou si l'attribut est un attribut ne contenant pas de valeur (type
tab,frameoumenu).
13.6.3.26.5 Historique
Aucun.
13.6.3.26.6 Exemples
Soit la famille suivante :
| BEGIN | Ma famille | MYFAMILY | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CLASS | My\MyFamily | |||||||||||
| DFLDID | auto | |||||||||||
| ICON | classe.png | |||||||||||
| // | idattr | idframe | label | T | A | type | ord | vis | need | link | phpfile | phpfunc |
| ATTR | MY_IDENTIFICATION | Identification | N | N | frame | 10 | W | |||||
| ATTR | MY_NUMBERONE | MY_IDENTIFICATION | nombre 1 | Y | N | int | 20 | W | ||||
| ATTR | MY_NUMBERTWO | MY_IDENTIFICATION | nombre 2 | N | N | int | 30 | W | ||||
| ATTR | MY_SUM | MY_IDENTIFICATION | Nombre 1+2 | N | N | int | 40 | R | ::mySum(MY_NUMBERONE, MY_NUMBERTWO) | |||
| ATTR | MY_REDACTOR | MY_IDENTIFICATION | Rédacteur | N | N | account | 50 | W | ||||
| ATTR | MY_REF | MY_IDENTIFICATION | référence | N | N | text | 70 | W | ||||
| ATTR | MY_T_PARTNER | MY_IDENTIFICATION | Participants | N | N | array | 80 | W | ||||
| ATTR | MY_COAUTHORS | MY_T_PARTNER | Co-auteurs | N | N | account | 90 | W | ||||
| ATTR | MY_CODATE | MY_T_PARTNER | Dates d'entrée | N | N | date | 100 | W | ||||
| END |
Vérification de l'attribut my_sum en fonction des valeurs de my_numberone et
my_numbertwo
use \Dcp\AttributeIdentifiers\MyFamily as Attributes\MyFamily; /** @var \Dcp\Family\MyFamily */ $myDoc = new_Doc("", "MY_DOCUMENT"); if ($myDoc->isAlive()) { $n1=$myDoc->getAttributeValue(Attributes\MyFamily::my_numberone); $n2=$myDoc->getAttributeValue(Attributes\MyFamily::my_numbertwo); $sum=$myDoc->getAttributeValue(Attributes\MyFamily::my_sum); if ($sum != ($n1 + $n2)) { printf("La somme est incorrecte : %d + %d <> %d ! \n", $n1, $n2, $sum); } }
Retour d'un tableau. Le document a deux rangées.
use \Dcp\AttributeIdentifiers\MyFamily as Attributes\MyFamily; /** @var \Dcp\Family\MyFamily */ $myDoc = new_Doc("", "MY_DOCUMENT"); if ($myDoc->isAlive()) { $partipants=$myDoc->getAttributeValue(Attributes\MyFamily::my_t_partner); print_r($partipants); }
Array ( [0] => Array ( [my_coauthors] => "5838" [my_codate] => DateTime Object ( [date] => "2013-07-04 00:00:00" [timezone_type] => 3 [timezone] => Europe/Paris ) ) [1] => Array ( [my_coauthors] => "5837" [my_codate] => DateTime Object ( [date] => "2013-06-11 00:00:00" [timezone_type] => 3 [timezone] => "Europe/Paris" ) ) )
13.6.3.26.7 Notes
Aucunes.