Heim > Artikel > PHP-Framework > Laravel5 erhält die Controller-Methode
In Laravel 5 ist das Abrufen von Controller-Methoden ein sehr einfacher und häufig verwendeter Vorgang. In einigen Szenarien müssen wir möglicherweise den Namen der Methode abrufen, die vom aktuellen Controller ausgeführt wird. Wie erhält man also Controller-Methoden in Laravel 5? Als nächstes wollen wir es gemeinsam herausfinden.
In Laravel 5 speichert das $route-Objekt die Routing-Informationen des aktuell ausgeführten Controllers. Dieses Objekt enthält den angeforderten URI, die Anforderungsmethode, Routing-Parameter usw. Wenn Sie den Methodennamen des aktuellen Controllers abrufen möchten, können Sie ihn über die Methode „getActionName“ des $route-Objekts abrufen.
/** 获取当前控制器方法名称 **/ public function getCurrentMethodName() { $route = Route::getCurrentRoute(); $action = $route->getActionName(); $fragments = explode('@', $action); $method = end($fragments); return $method; }
Im obigen Code rufen wir zuerst das aktuelle Routenobjekt über die Route::getCurrentRoute()-Methode ab und verwenden dann die Methode „getActionName“ des $route-Objekts, um den vollständigen Pfad der aktuellen Controller-Methode abzurufen, z als „AppHttpControllersTestController@index“ . Als nächstes verwenden wir die Funktion explosion(), um den Teil des Methodennamens abzufangen, und verwenden die Funktion end(), um das letzte Element des Arrays abzurufen, das den Methodennamen des Controllers darstellt. Zum Schluss geben Sie einfach den Methodennamen zurück.
Zusätzlich zur Verwendung des $route-Objekts können wir Controller-Methoden auch über den PHP-Reflexionsmechanismus erhalten. Der PHP-Reflexionsmechanismus stellt eine Klasse ReflectionClass bereit, mit der klassenbezogene Informationen abgerufen werden können, einschließlich Methoden, Eigenschaften, Konstanten usw. Über ReflectionClass können wir den Methodennamen des aktuellen Controllers abrufen.
/** 获取当前控制器方法名称 **/ public function getCurrentMethodName() { $controller = Route::current()->getController(); $reflection = new ReflectionClass($controller); $method = $reflection->getMethod(Route::currentRouteAction()); return $method->name; }
Im obigen Code rufen wir zuerst das Instanzobjekt des aktuellen Controllers ab und verwenden dann die ReflectionClass-Klasse, um die Reflexionsinformationen des Instanzobjekts abzurufen. Rufen Sie als Nächstes die aktuell ausgeführte Methode über die Methode getMethod() der Reflektionsinstanz ab. Verwenden Sie abschließend das Namensattribut der Reflexionsmethode, um den Methodennamen abzurufen und zurückzugeben.
Die oben genannten sind die beiden Möglichkeiten, Controller-Methoden in Laravel 5 zu erhalten. Unabhängig davon, welche Methode verwendet wird, erhalten wir eine sehr schnelle und bequeme Bedienmethode, mit der wir die Ausführung des Controllers besser steuern können. Wenn Sie Fragen zur Entwicklung von Laravel 5 haben oder mehr über Laravel 5 erfahren möchten, schauen Sie sich bitte die offizielle Dokumentation oder Tutorials an. Wenn Sie die Entwicklungsfunktionen von Laravel 5 beherrschen, können Sie sich schnell einen Vorteil im Bereich der Webentwicklung verschaffen.
Das obige ist der detaillierte Inhalt vonLaravel5 erhält die Controller-Methode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!