2017-04-19 1 views
0

Im recherche de la meilleure façon/solution d'utiliser les fonctions du contrôleur dans plusieurs contrôleurs - plusieurs applications dans une interface d'administration.Codeigniter joindre plusieurs contrôleurs

En d'autres termes: un sous-page (utilisateurs) je dois utiliser en 3: subpages

contrôleurs:

  • eshop-settings.php
  • web-settings.php
  • autre- settings.php

tous les contrôleurs ont leurs propres fonctions et interfaces.

admin -> contrôleurs -> eshop-settings.php contient/fonctions: sous-pages

  • Transport:/admin/eshop-settings/Transport/
  • prix:/admin/eshop-paramètres/prix/
  • utilisateurs:/admin/eshop-settings/utilisateurs/(onglet , tous les utilisateurs, onglet utilisateurs-autorisations..)
  • user_edit

admin -> contrôleurs -> web-settings.php contient/fonctions: sous-pages

  • pages:/admin/web/pages/paramètres
  • groupes:/admin/web-paramètres/groupes/
  • utilisateurs:/admin/web-paramètres/utilisateurs/(onglet. tous utilisateurs, tab. utilisateurs sessions)
  • users_edit

... etc.

Tous les contrôleurs ont sous-pages « utilisateurs » mais pas toutes les fonctions (fe. Onglet. Tous les utilisateurs) et « user_edit »,

est possible rejoindre les contrôleurs ou ajouter une partie contrôleur à un autre en Codeigniter?

Ou je besoin créer des fonctions « utilisateur » et les appeler à l'autre contrôleur et une interface hes.

Merci

+1

Avez-vous regardé pour HMVC https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc – user4419336

Répondre

0

contrôleurs ne doivent services appeler et transmettre des données à ces services, recevoir des données en arrière, et envoyer à la vue. Peut-être attraper des exceptions aussi.

Prenez votre logique métier de vos contrôleurs, et de créer une classe de service pour la fonctionnalité partagée.

Ensuite, vous pouvez faire des choses comme ceci:

$svc = new UserService($dbConnection); 
$user = $svc->getUserByEmail('[email protected]'); 
+1

Vous devez prendre la logique de commande et les mettre dans la bibliothèque. Ensuite, tous les contrôleurs utilisent la même bibliothèque avec le même code. –

+0

Merci pour votre suggestion. L'utilisation de bibliothèques semble être la meilleure solution pour ce cas. – drozdo