使用特征变量未定义

use trait variable undefined

我正在尝试使用 trait,因为我会将代码放在多个文件中,因为它是一个 api 连接。 但是当调用显示 api 返回值的变量时,它在控制器中显示未定义。

App/Http/Traits/UserConnect.php

namespace App\Http\Traits;

use GuzzleHttp\Client;
use GuzzleHttp\RequestOptions;

trait UserConnect
{

    public function connectInfo(Request $request)
    {
        try {
            $client = new \GuzzleHttp\Client();
            $url = "api_url";
            $response = $client->request('GET', $url, [
                'headers' => [
                    'Authorization' => 'Bearer '.$token,
                ],
            ]);
            $result = json_decode($response->getBody());

            return $result;

        }catch (\Exception  $e){
            dd($e);
        }
    }

}

控制器

<?php
namespace App\Http\Controllers;

use App\Http\Traits\UserConnect;

class HomeController extends Controller
{
    use UserConnect;

    public function page(Request $request)
    {
        $api = $this->connectInfo($result);
        dd($api);
    }

$result 返回未定义但 $api 强制 1 个变量。

你的调用应该是 $api = $this->connectInfo($result$request); 因为你的函数声明接受 Request public function connectInfo(Request $request)