テストの理由から、私はウィジェットでPjaxを使用しようとしています。ウィジェット内のその後Yii2。 Pjaxとセッション
$testArgs = [
'param' => 'test'
];
Yii::$app->session->set('testArgs', $testArgs);
echo Test::widget($testArgs);
:TestControllerで次に
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();
}
}
:ビューで
public function actionAdd() {
$testArgs = Yii::$app->session->get('testArgs');
var_dump($testArgs);
die;
}
$ testArgsはNULLです。どうして? Pjaxは別のセッションを作成しますか?私は(SESSION_IDとエコーが追加されている)、それはそう
UPDATE 1
は、私がセッションに$を渡しています実際のウィジェットで
UPDATE 2
同じセッションでありますフォーム(ActiveForm)オブジェクト。私はこれが問題だと思います。私はそれをシリアル化しようとしたが、それはその閉鎖シリアライズはPHPでよく知られているエラーがによってそれを渡す方法を検討しているようだ
UPDATE 3
を「閉鎖をシリアル化することはできません」というエラーが返され、私はオブジェクトからクロージャーを取り除くことができないからです。