【问题标题】:Check if record exists in database using Laravel 5.1使用 Laravel 5.1 检查数据库中是否存在记录
【发布时间】:2016-07-15 22:41:12
【问题描述】:

我正在将一个 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

    }

    }
    }   

如果记录已经存在,我将如何更新它?

【问题讨论】:

    标签: php laravel-5.1


    【解决方案1】:

    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]

    【讨论】:

    • “空缺”是你的模型吗?将每个属性放入对象 code$vacancy = new Vencancy(); $vacancy->requisition = $simpleXml->ExportData->Requisition['clientReqId']; $空缺->保存(); code 尝试使用您的所有属性....查看您的主键 [链接]laravel.com/docs/5.2/eloquent#defining-models[/link]
    • 空缺是我的榜样。
    猜你喜欢
    • 2019-01-25
    • 1970-01-01
    • 2013-08-07
    • 2015-01-21
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多