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.
您应该阅读Yii2文档上关于处理请求的部分
要获取客户端的IP,文档在这里,请求API文档在这里