我正在创建一个简单的API,它必须返回XML响应,我安装了bmatovu/laravel-XML包。问题是,我需要使用根标记作为<api/><api>
进行响应,但它会自动设置为<document></document>
。有什么想法我该怎么改变吗?
我的代码:
$time = time();
$data = [
'api' => [
'method' => 'call',
'success' => '1',
'time' => $time,
]
];
return response()->xml($data);
响应:
<?xml version="1.0" encoding="UTF-8"?>
<document>
<api>
<method>call</method>
<success>1</success>
<time>1595760619</time>
</api>
</document>
Ok找到了。
必须在随包安装的XMLresponse.php文件中更改这些参数。
public $options = [
'root' => 'document',
'encoding' => 'UTF-8',
'version' => '1.0',
'slug' => true,
];
您不必编辑供应商文件。这应该足够
Route::get('/users/{user}', function (Request $request, int $userId) {
$user = User::findOrFail($userId);
return response()->xml($user, 200, [], ['root' => 'user']);
});
输出
<?xml version="1.0" encoding="UTF-8"?>
<user>
<id>1</id>
<name>jdoe</name>
<email>jdoe@example.com</email>
</user>