使用Laravel Transformer保存JSON数据

时间:2016-02-29 12:09:31

标签: php json laravel

我正在开发一个从xml文件中提取数据然后将其解码为json的API,如何在控制器中显示store方法?

我已经尝试使用下面的代码将json存储到我的数据库中,但是我无法确定json是否保存到数据库中。我的表中插入了一条空记录。

public function store(Request $request)

{

$fileContents = file_get_contents('/path/to/my.xml');

$simpleXml = simplexml_load_string($fileContents);

$json = json_encode($simpleXml, true);

Vacancy::create(json_decode($json, true));

}

这是my.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<exportData>
<requisition>89777</requisition>
<position_title>Data Telecommunication Technician</position_title>
<experience>5 - 7 Years</experience>    
</exportData>

这是我的空缺模式

class Vacancy extends Model
{

protected $fillable = ['requisition', 'position_title', 'experience'];

我知道索引方法看起来像这样

public function index()

{

$vacancies = Vacancy::all();
return $this->respond([
'data' => $this->vacancyTransformer->transformCollection($vacancies->all())

]);

}

这是我的VacancyTransformer课程

class VacancyTransformer extends Transformer 
{

public function transform($vacancy)

{
return [

'requisition' => $vacancy['requisition'],
'position' => $vacancy['position_title'],
'workExperience' => $vacancy['experience'],

];

}

}

这是我的Transformer类

abstract class Transformer {

public function transformCollection(array $items)

{

return array_map([$this, 'transform'], $items);

}

public abstract function transform($item);

}

0 个答案:

没有答案