Laravel package bmatovu/laravel-xml.如何删除/更改 <document> xml 响应



我正在创建一个简单的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>

相关内容

最新更新