Wenn in Yii2 eine bestimmte IP erkannt wird, lösen Sie das entsprechende Ereignis aus
P粉031492081
P粉031492081 2023-09-10 22:38:09
0
1
691

Ich arbeite an einem Restaurantsystem und jedes Mal, wenn sich jemand mit dem Netzwerk des Restaurants verbindet, muss eine Menüregisterkarte angezeigt werden. Ich habe dies versucht, indem ich die IP-Adresse des Benutzers ermittelt und geprüft habe, ob sie mit dem Netzwerk des Restaurants übereinstimmt. Aber es funktioniert überhaupt nicht. (Alle Codes müssen Yii2 verwenden, dies ist mein erstes Mal, keine Erfahrung)

Ich habe alle Ordner- und Dateinamen überprüft, aber sie sind alle korrekt. Das Event läuft überhaupt nicht.

Nur um ein paar Hintergrundinformationen bereitzustellen: Ich habe eine Komponente, die die Instrumentierungsarbeit übernimmt, und der gesamte Code wird in dieser Datei ausgeführt. Das Problem scheint im eigentlichen Controller zu liegen.

<?php

namespace app\controllers;

use Yii;
use yii\web\Controller;



class NetworkController extends Controller{

    public function actionNetworkTeste(){
        
        Yii::$app->networkEventManager->on('specificNetworkConnectionDetected', [$this, 'onSpecificNetworkConnectionDetected']);

        return $this->render('networkTeste');
   
    }

    public function onSpecificNetworkConnectionDetected($event){

        //Yii::debug('Funcionou');

        return $this->render('network-alt'); 

        
    }
}


?>

Ich weiß nicht einmal, ob das der richtige Weg ist, einen Tab aufzurufen, wenn jemand mit dem Netzwerk verbunden ist, aber es ist besser, als es gar nicht erst zu versuchen. Ich würde mich wirklich über Hilfe freuen, da ich keine Erfahrung mit Yii2 habe.

P粉031492081
P粉031492081

Antworte allen(1)
P粉276577460

您应该阅读Yii2文档上关于处理请求的部分

要获取客户端的IP,文档在这里,请求API文档在这里

$userHost = Yii::$app->request->userHost;
$userIP = Yii::$app->request->userIP;
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage