Laravel 5.1 GeoIP 非静态方法不应被静态调用,假设 $this 来自不兼容的上下文
Posted
技术标签:
【中文标题】Laravel 5.1 GeoIP 非静态方法不应被静态调用,假设 $this 来自不兼容的上下文【英文标题】:Laravel 5.1 GeoIP Non-static method should not be called statically, assuming $this from incompatible context 【发布时间】:2015-11-28 15:49:42 【问题描述】:我正在使用 Torann\GeoIP 我在尝试时收到此错误
use Torann\GeoIP\GeoIP;
Route::get('geoip', function()
$location = GeoIP::getLocation();
);
但是当我尝试使用时
$geo = new GeoIP();
$geo - getLogation();
我有这个错误“传递给 Torann\GeoIP\GeoIP::__construct() 的参数 1 必须是 Illuminate\Config\Repository 的实例,没有给出”
所以我缺少 __construct 的论点 ....$config, $session
所以它应该是这样的
$loc = new GeoIP($config, $session);
$loc ->getLocation();
但是我需要给 $config = 什么?和 $session = ?
任何建议都会有所帮助。谢谢
如果有更好的方法来获取 GeoLocation 数据,那就太好了。
【问题讨论】:
【参考方案1】:您必须声明:
use Torann\GeoIP\GeoIPFacade as GeoIP;
并移动文件
/vendor/torann/geoip/src/config/geoip.php
变成 /config/geoip.php
。
【讨论】:
您的回答是关于配置 GeoIP 而不是解决问题!以上是关于Laravel 5.1 GeoIP 非静态方法不应被静态调用,假设 $this 来自不兼容的上下文的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 Eloquent 模型中调用方法时出现“不应静态调用非静态方法”?
Laravel Request::all() 不应该被静态调用
WebService生成XML文档时出错。不应是类型XXXX。使用XmlInclude或SoapInclude属性静态指定非已知的类型。