使用特征变量未定义
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)
我正在尝试使用 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)