recherche

Maison  >  Questions et réponses  >  le corps du texte

Lorsque vous rencontrez l'erreur « Propriété non définie : $client », essayez d'obtenir des informations.

<p>J'utilise Laravel v5.8 et guzzlehttp v7.4 et j'essaie d'écrire ce contrôleur pour obtenir des informations : </p> <pre class="brush:php;toolbar:false;">fonction publique __construct() { $client = nouveau Client(['base_uri' => 'https://jsonplaceholder.typicode.com/']); } fonction publique getInfo(Request $request) { essayer { $response = $this->client->request('GET', 'posts'); dd($response->getContents()); } catch (ClientException $e) { jj($e); } }</pré> <p>Mais lorsque j'appelle la méthode <code>getInfo</code>, j'obtiens le message d'erreur suivant : </p> <p><strong>Propriété non définie : AppHttpControllersTavanmandAppResultController::$client</strong></p> <p>Cependant, la documentation indique d'appeler l'uri comme ceci. </p> <p>Alors, quel est le problème ici ? Comment puis-je résoudre ce problème? </p>
P粉329425839P粉329425839444 Il y a quelques jours419

répondre à tous(2)je répondrai

  • P粉842215006

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

    Créez $client une variable globale de cette classe.

    Puis définissez la valeur dans le constructeur :

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

    Bon codage...

    répondre
    0
  • P粉621033928

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

    La portée de votre variable $client est limitée à l'intérieur du constructeur. Si vous souhaitez y accéder ailleurs, vous devez l'attribuer à une sorte d'attribut de classe ;

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

    répondre
    0
  • Annulerrépondre