简体   繁体   English

Yii2。 会议和表格

[英]Yii2. Session and Forms

I am trying to set a $form object (from ActiveForm) in session: 我试图在会话中设置一个$ form对象(来自ActiveForm):

$fofArgs = [
           'form' => $form,
        ];
 Yii::$app->session->set('fofArgs', $fofArgs);

But When I call in an action: 但是当我呼吁采取行动时:

var_dump(Yii::$app->session->get('fofArgs'));

It prints NULL. 它输出NULL。 My guess is that is related to closures, since I tried to serialize $form and I got an error "Closures can not be serialized". 我的猜测是与闭包有关,因为我尝试序列化$ form时出现错误“无法序列化闭包”。

Any ideas? 有任何想法吗?

This is a question after I thought it was an error with pJax: Yii2. 在我以为pJax: Yii2是一个错误之后,这是一个问题 Pjax and Session Pjax和会话

UPDATE 更新

Please test doing 请测试做

Yii::$app->session->set('formtest', $form)

in one controller/action and then 在一个控制器/动作中,然后

var_dump(Yii::$app->session->get('formtest')); 

in a different one, if you do it in the same it seems it works. 在另一种方法中,如果您以相同的方式进行操作,则似乎可以正常工作。

The issues was that sessions are internally serialized in Yii, so it is not possible to save an object with closures. 问题是会话在Yii内部进行了序列化,因此无法使用闭包保存对象。

Everyday we learn something new. 每天我们都会学到新东西。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM