Frage

Ich bin mit Codeigniter mit der HMVC Modulare Erweiterung und verfügen über einen Back-End-CMS-Bereich für Website-Inhalte zu verwalten. Ich Routing die Basis-URL + "admin" ( http: // localhost / cms / admin ) auf Controller-Methoden mit dem Präfix "admin _".

e.g. function admin_index() {...}

Und hier ist mein Routing:

$route['admin/([a-zA-Z]+)/(:any)'] = "$1/admin_$2";
$route['^admin/(:any)(/)?'] = "$1/admin_index";
$route['^admin(/)?'] = "dashboard/admin_index";
$route['admin/logout'] = "login/admin_logout";

Mit dem HMVC es routet nicht richtig jetzt. Hier ist, was passiert:

URL: http://localhost/cms/admin/faqs
Directory: modules/faqs/controllers/faqs - index method
--
here is where it breaks
--
URL: http://localhost/cms/admin/faqs/categories
Directory: modules/faqs/controllers/faqs - categories method (does not exits)
Desired: modules/faqs/controllers/categories - index method

Wie kann ich HMVC verwenden, während die "admin" zu pflegen hält der Website?

War es hilfreich?

Lösung

Sie machen das Leben ein bisschen zu heikel von Frontend- und Backend-Funktionen in dem gleichen Controller setzen. Werfen Sie einen Blick auf meinen Artikel über , wie zu erstellen eine Admin-Struktur in CodeIgniter .

Andere Tipps

Ich arbeite an etwas ähnliches, und implementiert ein Swapping wie Sie (dritte Option) tat und es funktionierte gut.

Ich hat versucht, einen Front-Controller zu implementieren, um den Admin-Bereich zu handhaben, und Lauf Module mit HMVC Module :: run () und puffern die Ausgabe, wie ich will, aber dann habe ich ein anderes Problem konfrontiert, werden Sie die URI ändern müssen Systeme von / bis _ oder etwas anderes, da Sie auf „/“ Modul Segmente als Parameter auf dem Controller, weil CI setzt senden Lage sein würden nicht für sie Mechanismus Routing.

Der einzige Weg ist, den Admin-Bereich zu emulieren wie Phil vorgeschlagen, aber es gibt eine andere Möglichkeit, noch haben die Kontrolle über die von jedem implementiert Code mit Ihrem CMS.

Sie könnten CI_Controller (oder MX_Controller falls Sie verwenden HMVC) erstrecken und eine Admin_Controller hinzuzufügen, die Ihre Logik behandelt und steuern, welche Module tun können.

Haben Sie einen Blick auf diese CodeIgniter Basisklassen : trocken halten es

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top