搜索

首页  >  问答  >  正文

当在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 天前678

全部回复(1)我来回复

  • P粉276577460

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

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

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

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

    回复
    0
  • 取消回复