我试图使用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个变量。
你的调用应该是 $api = $this->connectInfo(
$result
$request);
因为你的函数声明接受 要求 public function connectInfo(Request $request)