Heim  >  Artikel  >  PHP-Framework  >  Lassen Sie uns über den leeren Controller von ThinkPHP6 sprechen

Lassen Sie uns über den leeren Controller von ThinkPHP6 sprechen

王雪芹
王雪芹Original
2020-06-11 18:35:203368Durchsuche

Der leere Controller nimmt im ThinkPHP6-Handbuch nur einen sehr kleinen Platz ein. Selbst dieses Wort wird von vielen Programmierern nicht gehört oder verwendet. Lassen Sie mich dieses Mal ein praktisches Beispiel verwenden leerer Controller von ThinkPHP6.

Wir suchen im offiziellen Handbuch von ThinkPHP6 nach dem Schlüsselwort „leerer Controller“ und können den Kapitelinhalt des leeren Controllers finden. Werfen wir zunächst einen Blick auf die offizielle Definition eines leeren Controllers:

Das Konzept eines leeren Controllers bedeutet, dass das System versucht, den angegebenen Controllernamen zu finden, wenn es ihn nicht finden kann Die leere Controller-Klasse (Fehler) der aktuellen Anwendung. Mithilfe dieses Mechanismus können wir Fehlerseiten anpassen und URLs optimieren.

Das heißt, wir können einen leeren Controller verwenden, um unsere Fehlerseite anzupassen.

Das Handbuch verwendet eine einzelne Anwendung als Beispiel, aber in Wirklichkeit haben die meisten unserer Projekte mehrere Anwendungen, daher verwenden wir als Nächstes mehrere Anwendungen als Beispiel.

Angenommen, unser Projektdomänenname ist www.xiangmu.com. Wir haben zwei Anwendungen, Index und Demo. Jede Anwendung verfügt über einen eigenen Index-Controller und eine eigene Indexmethode.

1. Ich kann keinen Weg finden.

Wenn wir im Browser www.xiangmu.com/index/index/a eingeben, greift diese Adresse auf die a-Methode im Index-Controller unter der Indexanwendung zu, unsere a-Methode jedoch nicht Nicht vorhanden. Was passiert, wenn diese ungültige Anfrage abgelehnt werden kann? Dann erscheint unser leerer Controller in diesem Abschnitt.

Wir fügen der Indexsteuerung die folgende Methode hinzu:

public function __call($method, $args){
    return 'error request!';
}

Solange Sie auf eine Methode zugreifen, die nicht in der Indexsteuerung gefunden werden kann, gelangen Sie zu __call. Nachdem wir nun __call() für die Seite erreicht haben, die nicht existiert, können wir eine 404.html erstellen und call() zum Rendern der Vorlage verwenden.

2. Der Controller kann nicht gefunden werden.

Die obige Methode kann nicht gefunden werden. Was soll ich tun, wenn der Controller nicht gefunden werden kann? Ich gebe den Controller zufällig in den Browser ein, www.xiangmu.com/index/a/a. Tatsächlich haben wir keinen Controller oder eine Methode. Was ist, wenn wir diese ungültige Anfrage ablehnen können?

Dann verwenden Sie den Error.php-Controller unten, um das Problem zu lösen. Fügen Sie hinzu, dass der aktuelle Zugriff die Indexanwendung ist, also fügen wir Error.php unter die Indexanwendung ein. Auf die gleiche Weise können wir auch Fehlerseiten wie 404 einrichten.

<?php
namespace app\index\controller;

use app\BaseController;

class Error extends BaseController
{
    public function __call($method, $args){
            return &#39;error request!&#39;;
    }
}

Das Obige ist die relevante Erklärung zum leeren Controller, probieren Sie es jetzt aus!

Das obige ist der detaillierte Inhalt vonLassen Sie uns über den leeren Controller von ThinkPHP6 sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn