Lorsque vous rencontrez l'erreur « Propriété non définie : $client », essayez d'obtenir des informations.
P粉329425839
P粉329425839 2023-08-26 23:10:36
0
2
429
<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粉329425839
P粉329425839

répondre à tous(2)
P粉842215006

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...

P粉621033928

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');
    //...
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal