使用特性变量未定义

问题描述 投票:0回答:2

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

AppHttpTraitsUserConnect.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个变量。

laravel traits
2个回答
2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.