2016-07-17 3 views
0

Я пытаюсь установить $ объект формы (от ActiveForm) в сессии:Yii2. Сессия и формы

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

Но Когда я звоню в действии:

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

Он печатает NULL. Я предполагаю, что это связано с закрытием, так как я пытался сериализовать $ form, и я получил сообщение об ошибке «Закрытие не может быть сериализовано».

Любые идеи?

Это вопрос после того, как я думал, что это была ошибка с pJax: Yii2. Pjax and Session

UPDATE

Протестируйте делать

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

в один контроллер/действие, а затем

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

в другом, если вы делаете это в одном и том же, кажется, это работает.

+0

Мне удалось установить объект формы в сеансе и получить к нему доступ в действии. Используя тот же код !!! –

+0

В одном случае я получил NULL при распечатке переменной сеанса, но это произошло из-за того, что я по какой-то причине вышел из строя, и сессия была сброшена. В противном случае ваш код работает –

+0

Благодарим за отзыв, модель, которую вы использовали для создания своей формы, имеет правила? кажется, что он терпит неудачу, когда у него есть правила, потому что они представлены как закрытие. – Eduardo

ответ

0

Проблемы заключались в том, что сеансы внутри сериализованы в Yii, поэтому сохранить объект с закрытием невозможно.

Каждый день мы узнаем что-то новое.

Смежные вопросы