【发布时间】:2017-11-07 21:03:33
【问题描述】:
我有以下课程:
<?php
namespace App\Libraries;
use Illuminate\Contracts\Support\Arrayable;
class ErrorResponse implements Arrayable {
private $error;
function __construct($code, $message) {
$this->error = array('code' => $code, 'message' => $message);
}
function toArray() {
return $this->error;
}
}
然后在控制器上我有一个响应:
$data['message'] = 'hello';
$data['error'] = new ErrorResponse($code, 'Something is bad');
return response()->json($data, $code);
在响应中,我得到以下结果:
{
"error": {},
"message": "hello"
}
但我期待
{
"error": {
"code": 422,
"message": "Something is bad"
},
"message": "hello"
}
关于如何让 Laravel 响应嵌套对象 (ErrorResponse) 的内容有什么想法吗?
【问题讨论】:
-
你要么需要实现
JsonSerializable接口,要么公开$error。
标签: php json laravel laravel-5