我想在行动页中重复一些内容。
让我说,我想要回声hello word的内部布局。
我所知道的是向一个文件(视图中的hello.php)写hello.php并使用$this->render('hello');
那么,如何使它更短,像$this->echo('hello word');,所以YII将显示hello word内部布局?
发布于 2016-04-09 12:37:59
呈现HTML视图不是必需的。这两个操作应该输出以下信息:
public function actionHello()
{
echo 'hello word !';
}
public function actionHello2()
{
return 'hello word !';
}事实上,内置的yii\rest\Controller及其用于REST的子ActiveController返回数据的方式与在第二个示例actionHello2()中所做的一样。但是,他们使用ContentNegotiator过滤器输出JSON和/或XML,而不是纯文本:
'contentNegotiator' => [
'class' => \yii\filters\ContentNegotiator::className(),
'formats' => [
'application/json' => Response::FORMAT_JSON,
'application/xml' => Response::FORMAT_XML,
],
],如果您需要在没有主布局的情况下呈现操作视图,则可以使用renderPartial
public function actionAbout()
{
echo 'hello word !';
return $this->renderPartial('about');
}如果您需要的是呈现主布局和输出数据而不呈现操作视图,则可以使用renderContent。
public function actionHello()
{
return $this->renderContent('hello word !');
}在相关的文档中也可以找到更多的呈现选项。
https://stackoverflow.com/questions/36516409
复制相似问题