doukaojie8573 2017-02-20 00:12
浏览 155
已采纳

用于GEOIP的Laravel Middleware抛出错误 - >类Torann \ GeoIP \ Location的对象无法转换为字符串

Working on a Laravel Middleware to include GEOIP detection using Torann\GeoIP and saving the value to a cookie for later use i found the following error:

ErrorException in Geolocation.php line 21: Object of class Torann\GeoIP\Location could not be converted to string

where line 21 -> if($request->$location == null){...

namespace App\Http\Middleware;
use Symfony\Component\HttpKernel\Exception\HttpException;
use Closure;
use GeoIP;

class Geolocation
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        // Test to see if the requesters have an ip address.
        $location = GeoIP::getLocation();
        if($request->$location == null){
           Cookie::queue('price_geo', 'US','3600');
        }
        Cookie::queue('price_geo', $location->getAttribute('iso_code'),'3600');

        return $next($request);
    }
}

Im new to middleware in Laravel:

  1. Is this the correct way of using it?
  2. Additionally, I tested geoip()->getLocation() in view and returns the value, any idea why in middleware Geolocation.php throw the error?
  • 写回答

1条回答 默认 最新

  • donglu7816 2017-02-20 02:17
    关注

    $Many things in this code... Now is this what you are trying to achieve...?

      public function handle($request, Closure $next)
        {
            // Test to see if the requesters have an ip address.
            $location = GeoIP::getLocation($request->ip());
            if(isset($location){
               Cookie::queue('price_geo', $location->getAttribute('iso_code'),'3600');
    
            } else {
               Cookie::queue('price_geo', 'US','3600');
            }
    
    
            return $next($request);
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)