2015-10-30 3 views
2

Нужна ваша помощь для создания файла .xml с помощью Phalcon) Мне нужно получить результат из представления в мою переменную $xmlContent. В выходном файле есть только <?xml version="1.0"?> Вот мои черновики. СпасибоСгенерировать XML с помощью Phalcon

//in controller 
public function exportAction(){ 

    $xmlContent = $this->view->partial('partial/xml/map', [ 
     'tks' => Tks::find() 
    ] 
); 

    $doc = new DOMDocument(); 
    $doc->loadXML($xmlContent); 

    $this->response->setHeader('Content-Type', 'application/xml'); 
    $this->response->setHeader('Content-Disposition', 'attachment; filename="map.xml"'); 
    $this->response->setContent($doc->saveXML()); 

    return $this->response; 
} 

//in view 
<tks> 
{% for tk in tks %} 
<tk> 
    <type>{{ tk.tip_tk }}</type> 
    <number>{{ tk.nomer }}</number> 
    <serial>{{ tk.seriyniy_nomer }}</serial> 
    <status>{{ tk.status_tk }}</status> 
</tk> 
{% endfor %} 
</tks> 
+0

На самом деле, I'am получая результат в переменная '$ xmlContent', но у нее есть' NULL' в конце –

+0

Я понимаю, что я могу использовать 'ob_start()', 'ob_get_contents()' в contoller и выводить все там .. просто нужен чистый способ) –

+0

делает '$ doc-> saveXML() 'возвращает null? или выход phalcon равен нулю? – M2sh

ответ

2

Мы должны установить уровень вид рендеринга LEVEL_ACTION_VIEW, содержание просто выводит из partial, а затем мы посылаем заголовок, что это xml :) Вот и все)

//in controller 
public function exportAction(){ 
    $this->view->setRenderLevel(Phalcon\Mvc\View::LEVEL_ACTION_VIEW); 
    $this->view->partial('partial/xml/map', [ 
    'tks' => Tks::find() 
    ] 
    ); 

    $this->response->setHeader('Content-Type', 'application/xml'); 
    $this->response->setHeader('Content-Disposition', 'attachment; filename="map.xml"'); 
} 

//in view 
{{ '<?xml version="1.0"?>' }} 

<tks> 
{% for tk in tks %} 
    <tk> 
    <type>{{ tk.tip_tk }}</type> 
    <number>{{ tk.nomer }}</number> 
    <serial>{{ tk.seriyniy_nomer }}</serial> 
    <status>{{ tk.status_tk }}</status> 
    </tk> 
{% endfor %} 
</tks> 
Смежные вопросы