# getNeeded
La méthode getNeeded
permet de redéfinir le caractère obligatoire des Smart Fields.
/**
* @param \Anakeen\Core\Internal\SmartElement $document
* @return RenderAttributeNeeded needed attribute list property
*/
public function getNeeded(\Anakeen\Core\Internal\SmartElement $document);
Les classes Anakeen\Ui\DefaultView
et Anakeen\Ui\DefaultEdit
retournent les obligations par défaut, en fonction du
contrôle de vue.
Cette méthode doit retourner un objet de la classe Anakeen\Ui\RenderAttributeNeeded
qui contient les obligations à
appliquer pour chacun des attributs.
La classe RenderAttributeNeeded
expose la méthode setNeeded
qui permet de modifier l'obligation d'un Smart Element
en particulier. Cette obligation surcharge l'obligation par défaut ainsi que l'obligation indiquée par un masque issu du
contrôle de vue.
/**
* Affect new needed property to an attribute
* This property is more prioritary than mask
* @param string $attributeId Smart Field identifier
* @param bool $isNeeded Smart Field is needed or not
* @return $this
* @throws Exception
*/
public function setNeeded($attributeId, $isNeeded);
Cette obligation ne peut pas être appliquée à un Smart Field structurant, ni à un Smart Field contenu dans un tableau.
# Exemple
Modification de l'obligation de 2 Smart Fields en surchargeant la classe de vue par défaut.
use Anakeen\Ui\RenderAttributeNeeded;
use Anakeen\AttributeIdentifiers\My_family;
class RenderConfigCustom extends \Anakeen\Ui\DefaultView
{
/**
* @param \Anakeen\Core\Internal\SmartElement $document
* @return \Anakeen\Ui\RenderAttributeNeeded new mandatory attribute
*/
public function getNeeded(\Anakeen\Core\Internal\SmartElement $document)
{
$needed = parent::getNeeded($document);
$needed->setNeeded(My_family::my_phone, true);
$needed->setNeeded(My_family::my_level, false);
return $needed;
}
}