web-dev-qa-db-fra.com

Sous-formulaire plusieurs données non sauvegardées

J'essaie d'utiliser le champ de sous-formulaire Joomla avec multiple = "true" (au lieu d'utiliser l'ancienne méthode répétable modale).

Mon problème est que les données ne sont pas enregistrées dans la base de données. J'ai lu plusieurs exemples mais je ne vois pas ce que je fais mal.

Si je désactive multiple = "true", le sous-formulaire enregistre les données sous forme de chaîne JSON dans la base de données. Quand je le rallume, il ne sera pas enregistrer, peu importe ce que je tente.

Mon problème est fondamentalement celui-ci, mais il n'y avait pas de solution et je n'ai pas assez de réputation pour simplement commenter dessus: Pourquoi les données de mon champ de sous-formulaire ne sont-elles pas sauvegardées?

Mon composant XML:

<field name="list_links_url" 
        type="subform"
        label="Subform Field" 
        description="Subform Field Description"
        layout="joomla.form.field.subform.repeatable-table"
        multiple="true"
        formsource="/administrator/components/com_products/model/form/subforms/subform_list_links.xml" 
    />

Sous-formulaire XML:

<?xml version="1.0" encoding="UTF-8"?>
<form>
        <field name="link"
            label="Link"
            type="text"
            description="Enter a URL" 
        />
</form>

FYI - Nouvelle installation de Joomla 3.6.5 et PHP 7.0.10

Toute aide serait grandement appréciée.

3
sigil

Dans la fonction bind de votre table, ajoutez ceci:

if ( ( !empty( $array[ 'list_links_url' ] ) && ( is_array( $array[ 'list_links_url' ] ) ) ) ) {
            $this->_jsonEncode[] = "list_links_url";
        }
3
Stuart Steedman