2016-07-17 3 views
0

テストの理由から、私はウィジェットで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

を「閉鎖をシリアル化することはできません」というエラーが返され、私はオブジェクトからクロージャーを取り除くことができないからです。

答えて

0

私はこの質問に答えます。いいえ、PJaxは別のセッションを作成しません。私のセッションにフォームオブジェクトを追加することはそれを壊すことです、私はこれについて別の質問を開きます。

関連する問題