搜尋

首頁  >  問答  >  主體

遇到"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粉329425839444 天前422

全部回覆(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
  • 取消回覆