web-dev-qa-db-fra.com

Citations affichées dans la valeur de la base de données

Ainsi, toutes les données de profil renseignées dans un profil utilisateur pour joomla sont enregistrées avec des guillemets dans la base de données. Est-ce que quelqu'un sait comment supprimer les guillemets? Il semble le faire même comme valeur par défaut. Le type de champ est défini sur TEXT.

sample database

1
Brandon

Autant que je sache, d'après le code du plugin profiles, les marques de parole proviennent de données encodées en JSON avant d'être entrées dans la base de données.

$tuples = array();
                $order = 1;

                foreach ($data['profile'] as $k => $v)
                {
                    $tuples[] = '(' . $userId . ', ' . $db->quote('profile.' . $k) . ', ' . $db->quote(json_encode($v)) . ', ' . ($order++) . ')';
                }

                $db->setQuery('INSERT INTO #__user_profiles VALUES ' . implode(', ', $tuples));
                $db->execute();

Je suis sûr que pour les supprimer, vous devez éditer les fichiers Joomla principaux, ce que vous ne devriez jamais faire.

3
Richard B

Le champ profile_value est un champ codé JSON. Lorsqu'il est vide, il s'agit d'une chaîne entre guillemets vides comme valeur par défaut.

Vous ne voulez pas vous mêler de la manière dont les données sont stockées. (sauf si vous voulez écrire votre propre version du plugin de profil)

Ce que vous devez faire, c'est analyser les données JSON de votre code pour obtenir les valeurs sous-jacentes.

Ceci est courant dans de nombreux endroits de Joomla et d’autres systèmes de gestion de contenu. Par exemple, le champ params de presque tous les composants Joomla est également un champ codé JSON.

1
Walt Sorensen