Yii2:我可以这个 - >渲染(..)然后执行sql命令吗?

时间:2016-01-12 13:22:44

标签: performance yii2 pagespeed yii2-advanced-app

我知道如何加快页面加载速度。我有sql命令,我需要在控制器中执行。如果我在渲染页面后尝试执行该怎么办?渲染变量(model)并不依赖于它。

public function actionIndex()
{
    $model = new Model();

    ...

    $this->render('index', [
        'model' => $model,
    ]);

    Yii::$app->db->createCommand('UPDATE ...')->execute();

    return;
}

2 个答案:

答案 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命令..

你要做的是什么?不要简单加快页面加载(我认为)你在页面加载时尝试做另一个想法..