codeigniter-datamapper

___ answer5176721 ___
  

also mit dem "Benutzer" -Modell innerhalb der   "Benutzer" Controller ist unmöglich !!

Nein, das ist es nicht, Sie müssen den UserGuide sorgfältiger überprüfen;)

Sie können Ihrem Modell einen anderen Namen geben, als es orginal definiert ist:

  

Wenn Sie Ihr Modell zugewiesen haben möchten   zu einem anderen Objektnamen können Sie   spezifizieren Sie es über den zweiten Parameter von   die Ladefunktion:

%Vor%     
___ qstnhdr ___ Klassenname Kollision bei Verwendung von Codeigniter 2.0 mit Datamapper? ___ answer5495228 ___

Sie müssen lediglich den Namen und den Klassennamen Ihres Controllers in "Benutzer" ändern. Sie müssen Ihren Modellnamen nicht ändern.

Controller: Benutzer
Modell: Benutzer
db-Tabelle: Benutzer

Sehen Sie sich die Datamapper-Dokumentation an.

    
___ answer12274045 ___

Ich würde vorschlagen:

  • Controller - Benutzer oder / und Benutzer
  • Bibliothek - Users_lib oder Users_library oder User_lib oder User_library
  • Model - Users_model oder Users_m oder User_model oder User_m

Behalten Sie die Wörter Benutzer und Benutzer für den Controller bei, damit Sie eine nette URL behalten.

Stimmt nur mit der Verwendung von Plural oder Singular für das Modell und den Controller überein.

    
___ tag123php ___ PHP ist eine weit verbreitete, dynamische, objektorientierte und interpretierte Skriptsprache, die primär für die serverseitige Webentwicklung entwickelt wurde. ___ answer15668932 ___

Ich habe im Fall von 'Project' so genannt:

Controller:
Projekt erweitert MY_Controller erweitert CI_Controller

Modell:
ProjectModel erweitert das Modell

In der Ansicht
Projekt / ProjektManager // als Hauptinhalt
project / _projectItem // mit _ Unterstrich als Unteransicht

Das funktioniert überhaupt gut.

    
___ qstntxt ___

Ich benutze CI2.0 mit PHP 5.3

Ich habe gerade angefangen, "Datamapper ORM" zu verwenden und es ist ausgezeichnet !! Sie sind jedoch ein großes Problem hinsichtlich der Namen der Klassen

Ich habe eine Datenbanktabelle namens "users", also ist mein dm-Modell "user" und ich habe auch einen Controller mit dem gleichen Namen "user"?

also ist die Verwendung des "Benutzer" -Modells innerhalb des "Benutzer" -Controllers unmöglich !!

Was ist der beste Weg, um dieses Problem zu lösen?

Vielen Dank

Beste Grüße

    
___ tag123database ___ Eine Datenbank ist eine organisierte Sammlung von Daten. Es ist die Sammlung von Schemas, Tabellen, Abfragen, Berichten, Ansichten und anderen Objekten. Die Daten sind typischerweise so organisiert, dass sie Aspekte der Realität so modellieren, dass sie Prozesse unterstützen, die Informationen benötigen. Verwenden Sie dieses Tag, wenn Sie Fragen zum Entwerfen einer Datenbank haben. Wenn es sich um ein bestimmtes Datenbankverwaltungssystem (z. B. MySQL) handelt, verwenden Sie stattdessen dieses Tag. ___ answer18178795 ___

Die Art, wie ich damit umgehe, besteht darin, alle Namen meines Controllers mit %code% zu beenden.

Ich benutze auch Datamapper, also hatte ich viele Namenskollisionen. Für Benutzer habe ich einen Benutzer (Modell) und ein %code% .

Dann füge ich einfach hinzu:

%Vor%

zur Datei config / routes.php und voila.

Einziger Wermutstropfen ist, dass wenn Sie ein großes Projekt mit vielen Seiten haben (wie ich), Sie eine riesige routes.php Datei haben, besonders wenn Sie viele Funktionen haben, die viele Parameter haben Routing kann ziemlich schmerzhaft werden.

    
___ tag123coderigniter ___ CodeIgniter ist ein Open-Source-Webentwicklungs-Framework für PHP, das von EllisLab Inc entwickelt wurde und vom British Columbia Institute of Technology übernommen wurde. Das Framework implementiert eine modifizierte Version des Model-View-Controller-Entwurfsmusters. Verwenden Sie dieses Tag für Fragen zu CodeIgniter-Klassen, Methoden, Funktionen, Syntax und Verwendung. ___ tag123codeignitterdatamapper ___ Eine ORM-Bibliothek für CodeIgniter, die auf der vorhandenen ActiveRecord-Bibliothek von CodeIgniter aufbaut. Trotz seines Namens verwendet es nicht das DataMapper-Muster, sondern ist eine Implementierung des ActiveRecord-Musters. ___ answer5180017 ___

Einer der Nachteile von CodeIgniter ist, dass Sie einen Controller, ein Modell oder eine Bibliothek nicht gleich benennen können. Dies ist hauptsächlich ein PHP-Problem, da Sie natürlich nichts gleich benennen können, aber es kann auf zwei Arten vermieden werden.

  1. PHP Namespaces - das geht nicht, sie sind nur PHP 5.3 und 90% der Community würden starten, wenn sie implementiert würden.
  2. Controller-Präfixe - Das würde ich gerne hinzufügen, aber ... nun, es würde für jeden etwas kaputt machen. Wir müssen bis 2,1 warten, zumindest für eine so große Veränderung.

Im Moment kann ich nur empfehlen, dass Sie Ihre Modelle und Bibliotheken sorgfältig benennen.

Controller - Benutzer
Bibliothek - Benutzerdatenbank Modell - Benutzermodell | Benutzer_m

Es ist nervig, aber nur eines dieser Dinge für jetzt.

    
___ tag123codeigniter2 ___ CodeIgniter 2.x ist eine alte und nicht mehr unterstützte Version des beliebten PHP-Frameworks. Weitere Informationen finden Sie im [tag: codeigniter]. ___
6
Antworten

Klassenname Kollision bei Verwendung von Codeigniter 2.0 mit Datamapper?

Ich benutze CI2.0 mit PHP 5.3 Ich habe gerade angefangen, "Datamapper ORM" zu verwenden und es ist ausgezeichnet !! Sie sind jedoch ein großes Problem hinsichtlich der Namen der Klassen Ich habe eine Datenbanktabelle namens "users", also i...
03.03.2011, 04:34