【发布时间】:2020-11-13 13:54:40
【问题描述】:
我正在使用 Laravel 8 来构建 API,我有一条路线,出于问题的目的,它是.../api/fact,它获取一个随机事实。我有一个 FactsController.php 文件和两个特征,一个用于构建 JSON 响应,other 用于获取事实。由于某种原因,当从我的控制器(发出请求)中调用特征函数时,我没有在 Postman 中返回任何返回的 JSON...
特征/GetFact.php
<?php
namespace App\Traits;
use App\Traits\ApiResponse;
trait GetFact {
use ApiResponse;
/**
* Get random fact
*
* get random fact
*/
public function getRandomFact () {
$this->getFact();
$this->apiResponse([
'msg' => "Fact..."
], 200, true);
}
}
特征/ApiResponse.php
<?php
namespace App\Traits;
trait ApiResponse {
/**
* API Response
*
* Return a JSON response for our API with params
*/
public function apiResponse ($data, $code, $success = false) {
return response()->json(array_merge(['success' => $success], $data), $code);
}
}
控制器/FactController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Traits\GetFact;
class FactsController extends Controller
{
use GetFact;
/**
* Fact
*
* @param Request $request
*/
public function fact()
{
$this->getRandomFact()
}
}
当我向/api/fact 发出请求时,我应该会在我用msg 调用$this->apiResponse() 的位置列出返回的JSON,但我不是吗?就像return 似乎没有返回 JSON,因为它的作用域是 trait 而不是控制器,并且那里没有返回?我怎样才能实现列出的。
【问题讨论】: