我知道如何加快页面加载速度。我有sql命令,我需要在控制器中执行。如果我在渲染页面后尝试执行该怎么办?渲染变量(model
)并不依赖于它。
public function actionIndex()
{
$model = new Model();
...
$this->render('index', [
'model' => $model,
]);
Yii::$app->db->createCommand('UPDATE ...')->execute();
return;
}
答案 0 :(得分:2)
你可以使用" afterRender"如果你真的想在渲染后执行一些东西,那就做一些事情。
http://www.yiiframework.com/doc-2.0/yii-base-view.html#afterRender%28%29-detail
$this->view->on('afterRender', ...);
或在app / config / main.php中全局设置
return [
'components' => [
'view' => [
'on afterRender' => function ($event) {
/** @var $event yii\base\ViewEvent */
},
],
],
];
答案 1 :(得分:0)
在yii2中,渲染的结果返回给调用函数..
这样
return $this->render('index', [
'model' => $model,
]);
否则不显示.. 您的代码是否显示索引页面或不执行sql命令..
你要做的是什么?不要简单加快页面加载(我认为)你在页面加载时尝试做另一个想法..