Yii2尝试捕获重定向

时间:2017-02-12 14:45:41

标签: php yii2

我尝试以一种保持用户友好的方式管理完整性约束。 用户尝试删除某些内容 - 出错时我想留在页面上并只设置错误消息

我试过这种代码:

try {
    $this->findModel($id)->delete();
    Yii::app()->user->setFlash('success', Yii::t('app','flash.delete.success'));
}catch(\Exception $e) {
    Yii::$app->session->setFlash('error', Yii::t('app', 'error.delete'));
}
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));

但是如果出现错误,它会重定向而不显示消息,如果我转到另一个页面则显示消息(太晚了)

看不出他为什么这样做! 一些帮助会很好:)

1 个答案:

答案 0 :(得分:0)

可能的问题:

  • 对于重定向必须使用return:return $this->redirect(['view', 'id' => $id]);
  • 对于设置Flash之前的异常事务,请回滚:$transaction->rollBack();
  • 有时会在设置Flash close db之前发生异常:Yii::$app->db->close();