我已经创建了一个带有身份验证和自定义操作的RestController。
为了显示所需的信息,我在模型中使用了fields方法,如下所示:
public function fields()
{
return [
'title',
'description',
'street',
'postalcode',
'city',
'url' => function () {
return 'https://someurl.com/';
},
];
}
Action使用此架构返回XML响应:
<response>
<title>The title</title>
<description>Some text</description>
<street>Streetname</street>
<postalcode>Postalcode</postalcode>
<city>City</city>
<url>https://someurl.com/</url>
</response>
但是我想使用特定的/嵌套的XML Schema来在另一个系统中使用响应。这可能如下所示:
<real_estate>
<object_information>
<title>The title</title>
<description>Some text</description>
</object_information>
<geo>
<street>Streetname</street>
<postalcode>Postalcode</postalcode>
<city>City</city>
</geo>
<url>https://someurl.com/</url>
</real_estate>
如何使用自定义字段名称和嵌套元素创建这样的XML Scheme?
答案 0 :(得分:0)
谢谢Yupik!我可以使用以下代码实现解决方案:
public function fields()
{
return [
'object_information' => function($model) {
return [
'title' => $model->title,
'description' => $model->description
];
},
'geo' => function ($model) {
return [
'street' => $model->street,
'postalcode' => $model->postalcode,
'city' => $model->city,
];
},
'url' => function ($model) {
return 'https://someurl.com/';
},
];
}