首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不呈现YII2内容的情况下回显某些内容

如何在不呈现YII2内容的情况下回显某些内容
EN

Stack Overflow用户
提问于 2016-04-09 11:55:49
回答 1查看 2.9K关注 0票数 2

我想在行动页中重复一些内容。

让我说,我想要回声hello word的内部布局。

我所知道的是向一个文件(视图中的hello.php)写hello.php并使用$this->render('hello');

那么,如何使它更短,像$this->echo('hello word');,所以YII将显示hello word内部布局?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-09 12:37:59

呈现HTML视图不是必需的。这两个操作应该输出以下信息:

代码语言:javascript
复制
public function actionHello()
{
    echo 'hello word !';
}

public function actionHello2()
{
    return 'hello word !';
}

事实上,内置的yii\rest\Controller及其用于REST的子ActiveController返回数据的方式与在第二个示例actionHello2()中所做的一样。但是,他们使用ContentNegotiator过滤器输出JSON和/或XML,而不是纯文本:

代码语言:javascript
复制
'contentNegotiator' => [
    'class' => \yii\filters\ContentNegotiator::className(),
    'formats' => [
        'application/json' => Response::FORMAT_JSON,
        'application/xml' => Response::FORMAT_XML,
    ],
],

如果您需要在没有主布局的情况下呈现操作视图,则可以使用renderPartial

代码语言:javascript
复制
public function actionAbout()
{
    echo 'hello word !';
    return $this->renderPartial('about');
}

如果您需要的是呈现主布局和输出数据而不呈现操作视图,则可以使用renderContent

代码语言:javascript
复制
public function actionHello()
{
    return $this->renderContent('hello word !');
}

在相关的文档中也可以找到更多的呈现选项。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36516409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档