Question

Quelle est la méthode pour enregistrer et mettre à jour plusieurs à plusieurs dans le cadre Yii?

Était-ce utile?

Autres conseils

Sauf si vous créez un modèle pour la table entre les deux principaux tableaux, votre seule option est d'utiliser DAO (Database Access Object) et spécifiez SQLs avec.

Regardez comment démo blog accomplit cette tâche.

utiliser le type de relation MANY_MANY pour configurer plusieurs à plusieurs connexion entre modèles (Une table associative est nécessaire pour briser plusieurs-à-plusieurs dans un à-plusieurs) Et vous pouvez maintenant utiliser toutes les fonctions relationnelles d'enregistrements actifs

Yii Framework - Le guide définitif de Yû: Travailler avec Active bases de données relationnelles Enregistrement

L'extension suivante fait ce que vous voulez ... Yii Framework - Extension: cadvancedbehavior

Une chose importante à noter: sur chaque mise à jour, l'extension efface tous les enregistrements précédents et crée de nouveaux. Donc, je ne l'utiliser lorsque la table de intermediatry contient des données supplémentaires autres que les clés étrangères.

vous pouvez définir que dans MySQL level..by va à la vue relationnelle sous chaque table dans phpmyadmin et de fournir MANY_MANY l'utilisation des condition..and relationnelle nécessaire dans la classe de modèle dans les relations ..

La question est trop commune.

Habituellement composants de données avec de nombreuses relations à NOMBREUX apparaissent successivement et de manière indépendante. Donc, il vous suffit de faire une seule action d'insertion après l'autre.

Si votre relation a besoin la mise à jour en fonction, vous devriez utilisateur SQL déclenche au niveau DataBase. Cela va assurer l'intégrité des données et donnent une très bonne séparation dans la logique métier de l'application.

CREATE TRIGGER some_trigger
    AFTER UPDATE ON some_table
    ...
END IF;

Une façon similaire à incapsulate données relationnelles en un seul modèle logique au niveau de PHP (et par exemple manipuler avec là 2-3 modèles AR) et émuler SQL déclencheurs logique en elle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top