Response内容必须是实现__toString()的字符串或对象," boolean"给出。在laravel

时间:2017-06-21 05:42:15

标签: laravel laravel-5 ip

  

Response内容必须是实现__toString()的字符串或对象," boolean"给出。

这是我的代码:

 Route::get('/user/ip', function(Request $request) {
    $ip =$request->ip();
    //return $ip;
    return Curl::to('https://ipapi.co/'.$ip.'/json/')->get();
   });

2 个答案:

答案 0 :(得分:1)

我正在寻找类似的问题。您的代码应为:

Route::get('/user/ip', function(Request $request) {
    $ip =$request->ip();
    //return $ip;
    return response()
        ->json(Curl::to('https://ipapi.co/'.$ip.'/json/')->get()
    );
});
祝你好运

答案 1 :(得分:0)

无需以这种方式创建api。

在Laravel 5上,您可以在routes-> api上创建路由,然后Laravel会知道这是一个api路由。

示例:

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});
Route::get('/engineers', 'EngineerController@index');

工程师合集:

class EngineerCollection extends ResourceCollection {

    /**
     * Transform the resource collection into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return [
            'data' => $this->collection
        ];
    }
}

还有EnginersController索引函数:

 public function index()
    {
        return new EngineerCollection(Engineers::all());
    }

然后转到您的应用程序:

http://myapp.com/api/engineers