遇到"Undefined property: $client"錯誤時,嘗試取得資訊的操作
P粉329425839
P粉329425839 2023-08-26 23:10:36
0
2
454
<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粉329425839
P粉329425839

全部回覆(2)
P粉842215006

$client當作此類的全域變數。

然後在建構函數中設定值:

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

愉快的編碼...

P粉621033928

你的$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');
    //...
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板