如何使用laravel将mysql表导出到xml文件

问题描述:

我正在用laravel 4构建项目。我正试图将MySQL数据导出到XML文档。我设法保存一个.xml文件,但是里面没有数据,或者当我添加 - > get()方法到$ sales时,弹出错误。如何使用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'); 

解决它!

而不是开始写入元素的新元素。我错误的用法错误。

$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');