PhpStorm CodeIgniter-Klasse nicht gefunden

8

Können Sie mir dabei helfen? Ich bin neu in CodeIgniter und PHPStorm, ich habe ein Problem. Die PHPStorm IDE zeigt einen Fehler, obwohl der Code gut funktioniert (die Persons (controller) Klasse kann die Person (model) Klasse nicht finden).

$data['persons']=$this->**person**->get_person(); = Bei dieser Syntax von Persons class gibt es eine Nachricht "Feld person nicht in der Klasse Persons gefunden".

Können Sie mir aufklären, wie das gelöst werden kann, aber eigentlich ist die Ausgabe gut und es werden nur die Daten in Persons klasse abgerufen.

    
Echusen 14.11.2013, 17:38
quelle

3 Antworten

15

Die person -Eigenschaft ( $this->property ) ist nicht explizit deklariert, da sie erstellt und mit den magischen Methoden von PHP aufgerufen wird.

PhpStorm hat keine spezielle Unterstützung für das CodeIgniter-Framework und kann nicht erraten, woher $this->person stammt und welcher Typ es ist.

Aber Sie können IDE - nur einen kleinen PHPDoc-Kommentar vor der eigentlichen Klasse - mit dem @property -Tag helfen.

%Vor%

... und oh Magie - es funktioniert:

    
LazyOne 14.11.2013 18:29
quelle
2

Die Antwort von LazyOne hat anfangs nicht funktioniert. Nach einigen Tests fand ich heraus, dass mein Problem die Groß- / Kleinschreibung der Deklaration der Eigenschaft in PHPDoc war - hoffentlich können die folgenden Beobachtungen anderen helfen. Dazu muss ich meine Modellklasse deklarieren:

%Vor%

In meiner Steuerung lade und verwende ich das Modell zum Beispiel wie folgt:

%Vor%

Nun, damit phpStorm diese Klasse korrekt aufnimmt, habe ich ursprünglich einen PHPDoc @property-Kommentar oberhalb einer Kernklasse hinzugefügt, wie von anderen beschrieben (entweder über der CI_Controller-Klasse oder der separaten CI_phpStrom.php-Datei):

%Vor%

Das Problem wurde jedoch nicht behoben, da der Variablenname in diesem Fall die Groß- / Kleinschreibung betrifft und ich schreiben musste:

%Vor%

für meinen obigen Controller-Code, um die Klasse korrekt abzurufen. Eine Alternative wäre die Verwendung von Kleinbuchstaben beim Aufrufen von Funktionen (dies funktioniert auch, wenn Ihre Modelldeklaration Großbuchstaben verwendet)

%Vor%

Die lustige Sache, die ich in Groß- oder Kleinbuchstaben machte, war egal, wenn ich meine Modellklasse "Custom_model" nannte - dann änderte sie nichts, wenn die PHPDoc-Eigenschaftsvariable auf $ Custom_model oder $ custom_model ... gesetzt wurde.

    
hobbes_VT 11.06.2014 02:44
quelle
-1

Normalerweise fügen die meisten Leute das Suffix " _model " zu den Klassennamen Model hinzu. Ich schlage vor, dass Sie Ihr Modell mit "Person_model" umbenennen. Rufen Sie Ihr Modell "person_model" so auf:

%Vor%

Ich denke, dass Sie es eine angemessene Lösung finden könnten!

    
Suvash sarker 14.11.2013 17:49
quelle