Comments (5)
<?php
namespace App\Support;
class ResponseFormat extends \Jiannei\Response\Laravel\Support\Format
{
/**
* Format return data structure.
*
* @param array|null $data
* @param string|null $message
* @param int $code
* @param null $errors
* @return array
*/
public function data(?array $data, ?string $message, int $code, $errors = null): array
{
return $this->formatDataFields([
'code' => $code,
'message' => $this->formatMessage($code, $message),
'data' => $data ?: (object) $data,
'error' => $errors ?: (object) [],
'status' => $this->formatStatus($code),
'timestamp' => (string) now()->getTimestampMs(),
], $this->config);
}
}
// config/response.php
// Set the structure of the response data
'format' => [
// \Jiannei\Response\Laravel\Support\Format::class,
\App\Support\ResponseFormat::class,
[
'code' => ['alias' => 'code', 'show' => true],
'status' => ['alias' => 'status', 'show' => true],
'message' => ['alias' => 'message', 'show' => true],
//....
'error' => ['alias' => 'error', 'show' => false],
'timestamp' => ['alias' => 'timestamp', 'show' => true],
],
from laravel-response.
<?php namespace App\Support; class ResponseFormat extends \Jiannei\Response\Laravel\Support\Format { /** * Format return data structure. * * @param array|null $data * @param string|null $message * @param int $code * @param null $errors * @return array */ public function data(?array $data, ?string $message, int $code, $errors = null): array { return $this->formatDataFields([ 'code' => $code, 'message' => $this->formatMessage($code, $message), 'data' => $data ?: (object) $data, 'error' => $errors ?: (object) [], 'status' => $this->formatStatus($code), 'timestamp' => (string) now()->getTimestampMs(), ], $this->config); } } // config/response.php // Set the structure of the response data 'format' => [ // \Jiannei\Response\Laravel\Support\Format::class, \App\Support\ResponseFormat::class, [ 'code' => ['alias' => 'code', 'show' => true], 'status' => ['alias' => 'status', 'show' => true], 'message' => ['alias' => 'message', 'show' => true], //.... 'error' => ['alias' => 'error', 'show' => false], 'timestamp' => ['alias' => 'timestamp', 'show' => true], ],
一样的,我用的Laravel10的原因吗
from laravel-response.
问题解决了吗 🤔
from laravel-response.
问题解决了吗 🤔
还没有呢,Laravel10 里不能用原先的解决方案,勉强用中间件替代
from laravel-response.
可以参考测试用例看看:
- response format 配置:https://github.com/jiannei/laravel-response/blob/main/tests/TestCase.php
- 自定义 Format:https://github.com/jiannei/laravel-response/blob/main/tests/Support/Format.php
- 测试自定义 Format:https://github.com/jiannei/laravel-response/blob/main/tests/Unit/CustomFormatTest.php
from laravel-response.
Related Issues (20)
- 配置API限流,请求超过限制后, 响应方式为视图 HOT 2
- 无法静态调用 HOT 1
- 新版本覆盖掉 bootstrap/app/php App\Exceptions\Handler::class HOT 1
- No content 返回的不是JSON HOT 7
- 辅助函数 abort 引入 报错 HOT 3
- 版本升级造成的 ResourceCollection 数据结构变更问题 HOT 3
- 关于版本升级问题汇总 HOT 12
- ExceptionTrait 无效
- 返回的是空数组,但是data返回的是对象 HOT 4
- 想要看到完整的错误堆栈信息,需要开启哪里的debug HOT 1
- 数据格式
- laravel9表单验证时显示验证错误信息报错 HOT 5
- 可不可以提供一个特性 Traits HOT 3
- 提议附加一个设置请求头的中间件 HOT 2
- 为什么这些方法都没有return
- 响应字段的格式化的处理建议 HOT 10
- 可否增加自定义公共字段返回,比如说request_id 或者time 之类的? HOT 4
- 两个data的问题
- 如何返回树形数据呀
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from laravel-response.