Yii 1.1.16 - renderPartial()在输出的开头添加一个空格

时间:2015-02-06 04:20:48

标签: php yii yii-extensions

只是我,还是renderPartial()在输出前添加了额外的空间?我的所有renderPartial()似乎都这样做了。 render()对我来说很好,不会增加额外的空间。

这是我的示例代码。试图生成RSS,并因为额外的空间而得到错误

public function actionFeed()
    {
        Yii::import('site.common.extensions.feed.*');

        $model = new ABC();

        $this->renderPartial('feed', array('model' => $model->findAll()));
    }

这是生成的html

 <?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel>

<?xml>

前面有一个空格

如果我清空我的feed.php而只是放

<span>asadadasfaf</span>

<span>

前面仍有空格

我正在使用此扩展程序生成RSS https://github.com/2amigos/efeed

由于存在空间,Firefox正在给我这个错误

XML Parsing Error: XML or text declaration not at start of entity
Location: http://localhost/dev/frontend/www/abc/feed/
Line Number 1, Column 2: <?xml version="1.0" encoding="utf-8"?>
-^

仅供参考,我正在使用:

Yii 1.1.16
OSX 10.10.2
XAMPP 1.8.3-5
CHROME 40.0.2214.94 (64-bit) 
FIREFOX 35.0.1

任何人都知道一项工作?或者有同样的问题?

2 个答案:

答案 0 :(得分:1)

发现问题,在控制器中调用操作的<?php标记前面有一个空格。 :\

答案 1 :(得分:0)

我不确切地知道为什么renderPartial()会在那里添加额外的空间,但你可以这样做。

public function actionFeed()
    {
        $this->layout = '';
        $this->render('feed', array('model' => $model->findAll()));
    }

由于render()适用于您并使用$this->layout='',因此您可以停用视图的渲染布局。

希望它对你有用。