Добрый день. Потребовалась отдавать пользователю XML файлом.
Работаю в yii. Для удобности сделал себе несколько базовых шаблонов и наполняю их информацией.
Генерировать его решил с помощью $this->render('export_xml', array('data'=>$data));
В связи с этим возникают вопросы. render по умолчанию подгружает главный лэйаут, хочется это избежать.
Решил этот вопрос сделав себе пустой лэйаут и $this->layout = '//layouts/blank'; Но мне кажется, что есть более логичное и правильное решение, только найти его пока не могу.
И второй, самый главный вопрос. Можно ли заставить отдавать шаблон файлом?
Видимо под вечер пятницы голова уже совсем не варила. Да именно renderPartial() мне помог. Там я использовал headers, какие мне надо и заставил содержимое шаблона скачиваться xml файлом. Просто при render() с даже пустым layout я получал «headers already send».
Причем тут вообще шаблон?
Разве при том что
$this->layout = false; — В контроллере.
А дальше ставите любые headres, например те что от xml файла и выводите все что угодно.