搜尋

首頁  >  問答  >  主體

當在Yii2中偵測到特定IP時,引發對應的事件

我正在開發一個餐廳系統,每當有人連接到餐廳的網路時,必須彈出一個菜單選項卡。我嘗試透過偵測使用者的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粉031492081P粉031492081459 天前680

全部回覆(1)我來回復

  • P粉276577460

    P粉2765774602023-09-11 20:36:24

    您應該閱讀Yii2文檔上關於處理請求的部分

    要取得客戶端的IP,文件在這裡,請求API文件在這裡

    $userHost = Yii::$app->request->userHost;
    $userIP = Yii::$app->request->userIP;

    回覆
    0
  • 取消回覆