【发布时间】:2021-10-31 05:31:13
【问题描述】:
这是 Session.php 文件中的 Session 类
<?php
namespace app\core;
class Session
{
public function __construct()
{
session_start();
}
public function setFlash($key='', $message='')
{
$_SESSION['flash'][$key] = $message;
}
public function getFlash($key='')
{
return $_SESSION['flash'][$key] ?? false;
}
public function __destruct()
{
unset($_SESSION['flash']);
}
}
然后我在注册后将用户重定向到主页之前调用了 session::setFlash() 并在视图中调用 session::getFlash() 或布局无关紧要,但我什么也没显示
这里是代码
public function register(Request $request)
{
$registerModel = new RegisterModel;
if($request->isPost())
{
$registerModel->loadData($request->getBody());
if($registerModel->validate() && $registerModel->save())
{
Application::$app->session->setFlash('success', 'Thanks for registering');
$this->redirect('.');
}
return $this->render('register', [
'model' => $registerModel
]);
}
$this->setLayout('auth');
return $this->render('register', [
'model' => $registerModel
]);
}
这个视图
<div class="container">
<?php if(Application::$app->session->getFlash('success')):?>
<div class="alert alert-success">
<?php echo Application::$app->session->getFlash('success'); ?>
</div>
<?php endif; ?>
{{content}}
</div>
我不知道为什么它不起作用
【问题讨论】:
标签: php session model-view-controller