如果模型中每个元素都有条件,如何为API创建xml而不是手动?

时间:2018-11-05 20:40:34

标签: php xml laravel

我有一个带有动态表单的laravel项目(从db创建),对于每种表单,我需要为具有不同样式的API创建XML。 如何自动或通过模板创建它们?我的意思是我可以手动创建它们,但是这样会使模型充满数百条代码行。

if($myvar['xyz'] == "foo")
   $xml .= "<SOMENODE>$myvar['xyz']</SOMENODE>";
}

但是某些元素也有子元素... 有没有更优雅的方式?

谢谢 问候

1 个答案:

答案 0 :(得分:1)

我创建了Laravel包来简化API的XML响应:https://github.com/mtownsend5512/response-xml

使用该软件包,就像设置一个数组或集合以指定所需的格式一样简单。这是使用该软件包的简单示例:

$products = Product::all();
$array = [
    'status' => 'success',
    'data' => $products
];

return response()->xml($array);

这是一个非常简单的例子。如果您需要更完整的响应转换器设置,建议您将Spatie's Laravel Fractal package与我自己一起使用。这将帮助您按照所需的方式格式化数据,并获得完全有效的xml。

这应该为您提供开始所需的一切。