web-dev-qa-db-fra.com

JRegister :: merge ne donne pas des résultats corrects

Je développe un composant. Sur le modèle de partie de site, dans getItem($pk)

J'utilise:

$params = new JRegistry;                                
$params->loadString($this->item->params, 'JSON');                               
$this->item->params = $params;
$params =clone $this->getState('params');   
$params->merge($this->item->params);
$this->item->params = $params;

alors que dans la méthode populateState j'ai créé une variable params et obtenu default.xmlparams dans un objet JRegistry et la fusion ne prend en compte que les paramètres backend. En d'autres termes, ce que je fais chez menuitem n'a aucun effet et ne change rien. Kian William

Je l’ai résolu, Eureka, lorsque j’utilisais getState() pour obtenir la variable que j’avais créée dans populateState du modèle dans la partie site, je devais le modifier ou l’assigner à un objet de registre afin que la fusion puisse travailler sur deux objets de registre.

$params->loadString($this-getState('params'));

clone() n'a pas pu changer une chaîne en objet reg.

Dans populateState, je crée un objet de registre, mais lorsque je l'ai assigné à la variable setState, il redevient une chaîne, cela fonctionne maintenant.

1