2017-01-18 4 views
0

Yii2 a une caractéristique de generating CRUD for table with gii.Yii2: ajouter un champ à CRUD générée automatiquement (automatiquement?)

Il crée plusieurs fichiers: contrôleur, modèle, modèle de recherche et vues.

Et si après avoir généré CRUD je dois ajouter plus de champs à la table? Je vois que je dois changer:

  • Modèle
    • de phpdoc
    • rules()
    • attributeLabels()
    • du modèle de recherche
    • rules()
    • search() (tweak ->andFilterWhere() appels)
  • Vues:
    • index (colonnes de la grille)
    • _form (entrées modèle)
    • _search (entrées de recherche)
    • view (attribut lignes)

Beaucoup de travail. Y a-t-il un moyen de le faire plus facilement/automatiquement? Je comprends que je peux juste régénérer CRUD avec gii, mais dans ce cas tous mes autres tweaks seraient écrasés (perdus).

Peut-être existe-t-il une autre solution CRUD pour Yii2, qui ne code pas tous les champs et permet aux changements de schéma de table d'apparaître automatiquement dans les vues/modèles? Serait heureux de savoir à ce sujet.

Répondre

2

Si vous ne voulez pas écraser le fichier ou ajouter des modifications manuellement, vous avez ci-dessous l'option:

Dans Gii, après avoir cliqué sur le bouton de prévisualisation, vous pouvez voir la liste des fichiers.

enter image description here

Si le fichier a change ou déjà dans le répertoire que bouton diff affiché. En cliquant sur diff vous pouvez voir les changements dans le fichier.

enter image description here

A partir de ce modèle (fenêtre) vous pouvez modifier le fichier que votre besoin ou vous pouvez copier/coller le code dans/à partir fichier temporaire et à gérer.

+0

Merci pour votre réponse! Cette méthode nécessite également beaucoup de travail manuel, en particulier lorsque de nombreuses méthodes ont été ajoutées au modèle. Actuellement, j'essaye de créer CRUD dans un dossier séparé et d'y étendre mon modèle/contrôleur. Mais les vues ne peuvent pas être étendues ... – cronfy

+0

Il semble que ma méthode nécessite encore de copier du code depuis diffs ... même si j'étend mon modèle à partir du modèle généré, j'ai besoin de surcharger les règles et les méthodes de relation, sinon je me trompe) les modèles à partir des méthodes relationnelles. Ainsi apparaît que votre chemin est le seul qui fonctionne. Merci! Mais en plus de ce que vous suggérez, je n'utilise toujours pas de modèles générés par GII, mais mes propres modèles, étendus pour les modèles générés (pour conserver l'auto-complétion dans l'IDE). – cronfy

+0

Fonctionne comme un charme – Wizard

0

Une manière simple est de régénérer le modèle et le crud après avoir ajouté des champs à la table. Si vous avez des modifications dans crud, vous pouvez générer dans les fichiers d'interface graphique sans enregistrer et par copier coller déplacer le nouveau code de colonne.