cari

Rumah  >  Soal Jawab  >  teks badan

Apabila menghadapi ralat "Undefined property: $client", cuba dapatkan maklumat.

<p>Saya menggunakan Laravel v5.8 dan guzzlehttp v7.4 dan cuba menulis pengawal ini untuk mendapatkan beberapa maklumat: </p> <pre class="brush:php;toolbar:false;">fungsi awam __construct() { $client = new Client(['base_uri' => 'https://jsonplaceholder.typicode.com/']); } fungsi awam getInfo(Minta $request) { cuba { $respons = $this->client->request('GET', 'posts'); dd($respons->getContents()); } tangkapan (ClientException $e) { dd($e); } }</pre> <p>Tetapi apabila saya memanggil kaedah <code>getInfo</code> <p><strong>Sifat tidak ditentukan: AppHttpControllersTavanmandAppResultController::$client</strong></p> <p>Walau bagaimanapun dokumentasi mengatakan untuk memanggil uri seperti ini. </p> <p>Jadi apa masalahnya di sini? Bagaimanakah saya boleh menyelesaikan masalah ini? </p>
P粉329425839P粉329425839461 hari yang lalu432

membalas semua(2)saya akan balas

  • P粉842215006

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

    Jadikan $client pembolehubah global kelas ini.

    Kemudian tetapkan nilai dalam pembina:

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

    Selamat mengekod...

    balas
    0
  • P粉621033928

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

    Skop pembolehubah $client anda terhad kepada bahagian dalam pembina. Jika anda ingin mengaksesnya di tempat lain, anda perlu menetapkannya kepada beberapa jenis atribut kelas

    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');
        //...
    }

    balas
    0
  • Batalbalas