搜索

首页  >  问答  >  正文

遇到"Undefined property: $client"错误时,尝试获取信息的操作

<p>我正在使用 Laravel v5.8 和 guzzlehttp v7.4,并尝试编写这个控制器来获取一些信息:</p> <pre class="brush:php;toolbar:false;">public function __construct() { $client = new Client(['base_uri' => 'https://jsonplaceholder.typicode.com/']); } public function getInfo(Request $request) { try { $response = $this->client->request('GET', 'posts'); dd($response->getContents()); } catch (ClientException $e) { dd($e); } }</pre> <p>但是当我调用 <code>getInfo</code> 方法时,我收到以下错误信息:</p> <p><strong>未定义属性:App\Http\Controllers\Tavanmand\AppResultController::$client</strong></p> <p>然而文档中说要像这样调用 uri。</p> <p>那么这里出了什么问题?我该如何解决这个问题?</p>
P粉329425839P粉329425839458 天前431

全部回复(2)我来回复

  • P粉842215006

    P粉8422150062023-08-27 13:29:24

    $client作为此类的全局变量。

    然后在构造函数中设置值:

    public $client
        public function __construct()
        {
            $this->client = new Client(['base_uri' => 'https://jsonplaceholder.typicode.com/']);
        }

    愉快的编码...

    回复
    0
  • P粉621033928

    P粉6210339282023-08-27 10:48:41

    你的$client变量的作用范围仅限于构造函数内部。如果你想在其他地方访问它,你需要将它赋值给某种类属性;

    private $client;
        
    public function __construct()
    {
        $this->client = new Client(['base_uri' => 'https://jsonplaceholder.typicode.com/']);
    }
    
    public function getInfo(Request $request)
    {
        try {
            $response = $this->client->request('GET', 'posts');
        //...
    }

    回复
    0
  • 取消回复