2016-03-28 25 views
0

私のlocalstorageからxmlファイルの内容をDBに挿入しています。しかし、何が起こるかは、xmlファイルを更新することができ、更新されたレコードが既にDBに存在するかどうかをチェックする必要がある場合です。それが存在する場合、私はレコードを更新する必要があり、それが存在しない場合は、新しいレコードを挿入する必要があります。私は挿入を行うことができますが、私は更新メソッドを使用してこれを行うLaravelの方法を見つけることはできません。Laravel 5.1を使用してデータベースにレコードが存在するか確認してください。

私の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

https://laravel.com/docs/5.2/eloquent#basic-inserts

あなたが雄弁を使用する場合は必要ありません「もし」あなたのコントローラ であなたのPKを正しくお使いのモデルで構成されている場合は、この方法は、あなたのためにそれを見ることができます「保存」

「欠員」はあなたのモデルの権利ですか?オブジェクト内のすべての属性を置く

$vacancy = new Vencancy(); 
$vacancy->requisition = $simpleXml->ExportData->Requisition['clientReqId']; 
$vacancy->save(); 

私は、コードにこれを置くだろうかhttps://laravel.com/docs/5.2/eloquent#defining-models[/link]

+0

あなたの主キー、[リンク]を参照してください ....すべての属性でそれを試してみてください? – jaahvicky

+0

「空き」はあなたのモデルですか?すべての属性をオブジェクトに入れる 'code' $ vacancy = new Vencancy(); $ vacancy-> requisition = $ simpleXml-> ExportData-> Requisition ['clientReqId']; $ vacancy-> save(); 'code' あなたのすべての属性を試してみてください.... プライマリキーを参照してください[https://laravel.com/docs/5.2/eloquent#defining-models [/ link] – cmnardi

+0

空きが私のモデルです。 – jaahvicky

関連する問題