【问题标题】:Undefined method 'json' in laravellaravel中未定义的方法'json'
【发布时间】:2021-08-29 23:56:14
【问题描述】:

我正在尝试从外部 API 获取数据并以 json 形式显示数据,没想到我得到了这个“未定义的方法 json”错误,我该如何解决这个问题?

下面是我的控制器代码:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use GuzzleHttp\Client;

class alkitabcontroller extends Controller
{
    public function getDataAlkitab(Request $request){
        $kitab = $request->input('kitab');
        $pasal = $request->input('pasal');

        $client = new Client;
        $request = $client->get("https://api-alkitab.herokuapp.com/v2/passage/$kitab/$pasal?ver=tb");
        $response = $request->json();
        dd($response);
    }
}

【问题讨论】:

    标签: php json laravel api


    【解决方案1】:

    转成json的正确方法是使用json_encode

    json_encode($request->all());
    

    【讨论】:

    • 这是 RAW 的做法...如果您使用的是框架,那么当您共享数组或类似内容时,它大多已经被编码...
    【解决方案2】:

    作为 Guzzle Github 中的 discussed at lengthjson 方法是两极分化的,反对切换到 PSR-7 唯一接口,因此它被删除了。

    因此,您要么创建自己的实现,要么只是:

    $client = new Client;
    $response = $client->get("https://api-alkitab.herokuapp.com/v2/passage/$kitab/$pasal?ver=tb");
    $json_string = $response->getBody()->getContents();
    $json = json_decode($json_string);
    dd($json); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-31
      • 2022-11-02
      • 2022-12-23
      • 2021-08-02
      • 2017-12-17
      • 2018-01-11
      • 2019-08-18
      • 2017-02-01
      相关资源
      最近更新 更多