在控制器中使用 $app 对象 (Lumen)

using the $app object inside a controller (Lumen)

好的,我对 lumen 和 laravel 还很陌生,我试图让这个 api https://packagist.org/packages/codenexus/lumen-geoip 在 lumen 中工作,我通过 composer 安装了它,我能够使用它并获得基于我在 routes.php

内时给出的 IP 的位置

但是当我在控制器中使用相同的代码时,它不允许我继续,因为 $app 变量未定义。

这是在路由中运行的代码

    $app->geoip->getLocation('148.210.21.180')->country->names['en']

我一直在读到服务容器可以帮助我解决这个问题,但我感到迷茫...... 感谢您的帮助。

$app 变量在您的控制器中不可用,但您可以在代码中的任何位置使用 app() 方法来访问应用程序对象。

所以,在你的控制器中试试这个:

app()->geoip->getLocation('148.210.21.180')->country->names['en']