我正在将我的项目从CodeIgniter 3升级到CodeIgniter 4,我试图在视图中显示一个flashdata消息,但不幸的是,我尝试的每个方法都有不同的错误。
在CodeIgniter 3中,我曾经调用如下代码:
<?php if ($this->session->flashdata('message')) : ?>
<div class="alert alert-success alert-dismissible fade show" role="alert">
<?php echo $this->session->flashdata('message'); ?>
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
</div>
<?php endif; ?>
我在CodeIgniter 4中尝试了相同的操作,但得到了以下错误:
ErrorException
Undefined property: CodeIgniter\View\View::$session
有谁能告诉我如何做到这一点吗?提前感谢。
6条答案
按热度按时间eyh26e7m1#
可以直接使用session()函数:
c7rzv4ha2#
上下文($this)是View类的一个示例--〉您不能直接访问Session示例
您可以在下面创建新示例
yws3nbqq3#
在CodeIgniter 4中,设置闪存数据
$session->setFlashdata('item', 'value');
和查看$session->getFlashdata('item');
的新方法您可以在这里查看:在CodeIgniter的会话中设置闪存数据
xienkqul4#
我只是用另一种方式来显示一个flashdata,它工作得很好。
在我的控制器中,我为传递给视图的数据添加了一个新索引:
在视图
login.php
中,我这样命名它:我只使用了
markAsFlashdata()
方法,它工作得很好。下面是我在使用return
方法之前在控制器中所做的:然后在视图中使用
$_SESSION['error']
访问闪存数据:5us2dqdw5#
在
echo $this->section('content');
后面添加此行1cklez4t6#
目前,我的解决方案是在BaseController.php中创建一个视图方法,其思想是向$data数组中添加更多的“公共”信息。