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
string
sous 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
,frame
oumenu
).
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.