По причинам тестирования я пытаюсь использовать Pjax в виджетах. По мнению:Yii2. Pjax и Session
$testArgs = [
'param' => 'test'
];
Yii::$app->session->set('testArgs', $testArgs);
echo Test::widget($testArgs);
Тогда в виджете:
class Test extends Widget {
public $param;
..
public function init() {
..
}
public function run() {
Pjax::begin();
echo "<a href='test/add'>[ + ]</a> | <a href='test/remove'>[ - ]</a>";
Pjax::end();
}
}
Тогда в TestController:
public function actionAdd() {
$testArgs = Yii::$app->session->get('testArgs');
var_dump($testArgs);
die;
}
$ testArgs является NULL. Зачем? Pjax создает другой сеанс?
UPDATE 1
Я добавил эхо с session_id(), и это, кажется, является той же сессии
UPDATE 2
В реальном виджете я передаю на сессии $ form (ActiveForm). Я думаю, что это проблема. Я пытался сериализовать его, но он вернул ошибку, говоря «Закрытие не может быть сериализовать»
UPDATE 3
кажется, что закрытие сериализации является хорошо известная ошибка в PHP обзора, как по пропускам, которые, так как я не могу удалить закрытие с объекта.