我正在開發一個餐廳系統,每當有人連接到餐廳的網路時,必須彈出一個菜單選項卡。我嘗試透過偵測使用者的IP位址並查看是否與餐廳的網路相符來實現。但是它根本不起作用。 (所有程式碼都必須使用Yii2,這是我第一次接觸,沒有經驗)
我檢查了所有的資料夾和檔案名,但都是正確的,事件根本不運行。
只是為了提供一些背景信息,我有一個組件來進行檢測工作,所有的程式碼都在那個文件中運行。問題似乎出現在實際的控制器中。
<?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'); } } ?>
我什至不知道這是否是正確的方法,在有人連接到網路時彈出一個選項卡,但這比根本不嘗試要好。我會非常感謝一些幫助,因為我在Yii2上沒有經驗。
P粉2765774602023-09-11 20:36:24
您應該閱讀Yii2文檔上關於處理請求的部分
$userHost = Yii::$app->request->userHost; $userIP = Yii::$app->request->userIP;