很多的场景下,我们需要做返回上一页的功能。这样,无论用户是从哪里过来的,都可以返回上一页。对应修改页面来说,用户体验是最好的(因为不是所有人都喜欢返回列表页的,有些场景返回列表页是反人类的设计)。

    public function actionUpdate($id)
    {
        $model = $this->findModel($id);
        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            return $this->goBack();
        }
        Yii::$app->user->setReturnUrl(Yii::$app->request->referrer);
        return $this->render('update', [
            'model' => $model,
        ]);
    }

对了,就是这样,Yii::$app->user->setReturnUrl(Yii::$app->request->referrer) 与 return $this->goBack() 的组合,完美。