在 Yii2 中检测到特定 IP 时触发事件

问题描述 投票:0回答:1

我正在开发一个餐厅系统,每当有人连接到餐厅的网络时,该系统就必须弹出一个菜单选项卡。我尝试通过检测用户 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 的经验

php yii2 ip
1个回答
0
投票

您应该阅读 Yii2 文档中的 处理请求

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

$userHost = Yii::$app->request->userHost;
$userIP = Yii::$app->request->userIP;
© www.soinside.com 2019 - 2024. All rights reserved.