我正在从我的localstorage中将xml文件内容插入到数据库中。然而,发生的是xml文件可以更新,当它更新时我需要检查记录是否已存在于我的数据库中。如果它存在,我需要更新记录,如果它不存在,我需要插入一个新记录。我能够插入但我似乎没有找到使用更新方法执行此操作的Laravel方法。
在我的xml文件中,它们是一个在更新xml时不会更改值的节点。我想我必须使用if语句来检查这个节点的值,但我似乎无法理解这一点。
以下是我插入的方式。
public function store(Request $request)
{
// Building directory path.
$directory = storage_path('app/xmlentries/uploads');
$files = File::allFiles($directory);
foreach($files as $file) {
$contents = $file->getContents();
foreach((array) $contents as $content)
{
$simpleXml = simplexml_load_string($xml);
$data = [
'requisition' => $simpleXml->ExportData->Requisition['clientReqId'], //NODE THAT DOES NOT CHANGE VALUE
'experience' => $simpleXml->ExportData->Requisition->EssentialFunction,
'job_requirements' => $simpleXml->ExportData->Requisition->EssentialFunction,
],
];
Vacancy::insert($data); //WHERE I AM INSERTING MY RECORD
}
}
}
如果记录已经存在,我将如何更新记录?
答案 0 :(得分:0)
https://laravel.com/docs/5.2/eloquent#basic-inserts
如果您使用Eloquent,则不需要" if"在你的控制器中 "保存"如果你的PK在模型中正确配置了
,方法会为你看到它"空缺"你的模特对吗?将每个属性放在一个对象中
$vacancy = new Vencancy();
$vacancy->requisition = $simpleXml->ExportData->Requisition['clientReqId'];
$vacancy->save();
尝试所有属性.... 查看您的主键[link] https://laravel.com/docs/5.2/eloquent#defining-models[/link]