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.
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:
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.
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:
Ich denke, dass Sie es eine angemessene Lösung finden könnten!
Tags und Links php code-completion codeigniter codeigniter-2 phpstorm