2016-06-14 8 views
1

私はlaravel 4でプロジェクトを構築しています.MySQLデータをXMLドキュメントにエクスポートしようとしています。私は.xmlファイルを保存することができましたが、内部にデータはありません。または、$ salesにget()メソッドを追加すると、エラーがポップアップします。laravelを使用してmysqlテーブルをxmlファイルにエクスポートする方法

選択したデータをデータベースからxmlファイルにエクスポートするにはどうすればよいですか?私はこのようなものを作成することを目指しています:image

$sales = Sale::where('Status', '=', 'ON') 
     ->orderBy('updated_at', 'asc'); //->get() here brings an error. 

    try 
    { 

     $xml = new XMLWriter(); 

     $xml->openURI('documents/mailouts/example.xml'); 

     $xml->startDocument('1.0'); 

     $xml->startElement('sales'); 

     foreach ($sales as $sale) { 


      $xml->startElement('sale'); 

      $xml->startElement('REF', $sale->SaleID); 
      $xml->endElement(); 

      $xml->startElement('COUNTY', $sale->county); 
      $xml->endElement(); 

      $xml->startElement('BOP1', $sale->SaleBop1); 
      $xml->endElement(); 

      $xml->startElement('OFFICE', $sale->SaleOffice); 
      $xml->endElement(); 

      $xml->endElement(); 
     } 

     $xml->endElement(); 
     $xml->endDocument(); 

     $xml->flush(); 

     Session::flash('success', 'success.'); 
    } 
    catch(Exception $e) 
    { 
     Session::flash('error','problem'); 
    } 


    return Redirect::route('sendouts.generate'); 

答えて

0

はそれを解決します!

新しい要素を開始する代わりに、要素に書きました。間違った使い方は悪い

$sales = Sale::where('Status', '=', 'ON') 
    ->orderBy('updated_at', 'asc'); //->get() here brings an error. 

try 
{ 

    $xml = new XMLWriter(); 

    $xml->openURI('documents/mailouts/example.xml'); 

    $xml->startDocument('1.0'); 

    $xml->startElement('sales'); 

    foreach ($sales as $sale) { 


     $xml->startElement('sale'); 

     $xml->writeElement('REF', $sale->SaleID); 
     $xml->writeElement('COUNTY', $sale->county); 
     $xml->writeElement('BOP1', $sale->SaleBop1); 
     $xml->writeElement('OFFICE', $sale->SaleOffice); 


     $xml->endElement(); 
    } 

    $xml->endElement(); 
    $xml->endDocument(); 

    $xml->flush(); 

    Session::flash('success', 'success.'); 
} 
catch(Exception $e) 
{ 
    Session::flash('error','problem'); 
} 


return Redirect::route('sendouts.generate'); 
関連する問題