首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >php会话闪光消息

php会话闪光消息
EN

Stack Overflow用户
提问于 2013-09-12 02:05:32
回答 2查看 10.4K关注 0票数 2

我正在尝试在重定向后创建会话闪光消息。

我有Controller类

代码语言:javascript
复制
class Controller
{
    function __construct()
    {
    if(!empty($_SESSION['FLASH']))
        foreach($_SESSION['FLASH'] as $key => $val)
        $this->$key = $val;
    }
    function __destruct()
    {
        $_SESSION['FLASH']=null;
    }
}

我还有一个控制器子类Home,其中的函数是按路由运行的,比如/Home/Index公共函数=> ()

代码语言:javascript
复制
class Home extends Controller
{
    function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        //where i want to display $this->message only once
        echo $this->message; // but $this->message is undefinded why? 
    }
    public function Post_register(){
        //after post form data
        // validation 

        // this function redirect to /Home/Index  above function index();
        Uri::redirectToAction("Home","Index",array('message' => 'some message'));
    }
}

和uri类函数,其中我重定向用户。

代码语言:javascript
复制
public static function redirectToAction($controller,$method,$arr)
{
    $_SESSION['FLASH'] = $arr;
    header("Location:/".$controller.'/'.$method);
}

但是为什么$this->message是不确定的?

EN

回答 2

Stack Overflow用户

发布于 2013-09-12 02:13:11

在您提供的代码中,$message从未定义为Controller类或其派生类Home的成员。如果你想使用这个成员变量,你必须将它声明为类的成员,比如public $message,然后在执行的时候设置它,大概是在你的Uri::redirectToAction函数中。

票数 0
EN

Stack Overflow用户

发布于 2015-05-28 21:15:15

我专门为这种类型的项目编写了一个库https://github.com/tamtamchik/simple-flash

一旦你安装了它,你就可以做到这一点。

在你的redirectToAction

代码语言:javascript
复制
public static function redirectToAction($controller,$method,$arr)
{
    flash($arr['message']);
    header("Location:/".$controller.'/'.$method);
}

index

代码语言:javascript
复制
public function index()
{
    echo flash()->display(); 
}

它将生成Bootstrap友好的警报消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18748240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档