Tin nhắn flash có vẻ bị hỏng trong trường hợp chuyển hướng. Tôi đã tạo mã thử nghiệm đơn giản:Yii2 - flash không hiển thị sau khi chuyển hướng
public function actionTest($test = 0) {
if($test == 0) {
Yii::$app->getSession()->addFlash('success', 'Follow the white rabbit');
return Yii::$app->getResponse()->redirect(array('test', 'test' => 1));
}
return $this->render('test', []);
}
Tôi gọi hành động không có tham số, nó sẽ thêm đèn flash và chuyển hướng. Khi nó hiển thị trang - flash không xuất hiện.
Phần xem là tốt, bởi vì nếu tôi đặt flash và thực hiện kết xuất mà không cần chuyển hướng, nó sẽ được hiển thị chính xác.
Tại sao?
EDIT: Layout view mã:
<?php
use frontend\widgets\Alert;
$this->beginPage();
echo $this->render('partials/head');
?>
<body class="no-sidebar">
<?= $this->beginBody() ?>
<div id="header">
<?= $this->render('partials/top') ?>
<?= $this->render(Yii::$app->user->isGuest ? 'menus/guest' : 'menus/registered') ?>
</div>
<!-- Main -->
<div id="main">
<?= Alert::widget() ?>
<?= $content ?>
</div>
<?= $this->render('partials/footer') ?>
<?= $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>
Điều đó có ý nghĩa. Nếu bạn sử dụng chuyển hướng mà không trả lại tập lệnh, nó sẽ hiển thị trang, nó sẽ sử dụng hết các nhấp nháy rồi nó chuyển hướng. Kết quả là một đèn flash bị thiếu trên trang tiếp theo. Vì vậy, đó là hành vi bình thường và mong đợi. –
Người bạn đã cứu thịt xông khói của tôi. Tôi đã dành hàng giờ xung quanh với vấn đề này cho đến khi tôi đọc bình luận của bạn. Sửa nó ngay lập tức. Cảm ơn bạn! –
đẹp, cảm ơn bạn – kiamoz