Symfony2 会话 >存储&在会话中检索项目的数组/集合 [英] Symfony2 Sessions > Store & Retrieve array/collection of items in session

查看:42
本文介绍了Symfony2 会话 >存储&在会话中检索项目的数组/集合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道这个问题是否值得.我已经阅读了文档,但是来自旧的 PHP $_SESSION 环境我不确定如何实现.我有一个测验类型的应用程序.在测验开始时,我想获取测验中的所有问题并将它们存储在会话中.检索下一个问题时,我想检查会话中是否存在这些问题,如果存在,则检索下一个问题.我有以下几点:

I do not know if this is question worthy. I have read up on the documentation, but coming from and old PHP $_SESSION environment I am not sure how to implement. I have a quiz type application. At initiation of the quiz I want to get all the questions in the quiz and store them in the session. When retrieving the next question I want to check if the questions exist in the the session, if they do then I retrieve the next question. I have the following:

public function nextQuestionAction()
{
    $data = $this->getRequest()->request->all();

    $session = new Session();
    $session->start();

    if ($session->has('quiz_questions'))
    {
        $session->get('quiz_questions');
        // Get the next question from the session, 
        // based on the previous question's ID, $data['question_id'];
        // The questions are ordered by an order_index and not by id, but
        // I get the session index based on $data['question_id'] and then 
        // retrieve the next one in line based on the index, or something
        // along that line
        // If there is no next question, then the session must be unset
    }
    else
    {
        $session->create('quiz_questions');

        $quiz = $this->getDoctrine()
        ->getRepository('CriticalReadingQuizBundle:Quiz')
        ->find($data['quiz_id']);

        $questions = $quiz->getQuestions();
        // Store questions in session in such a way that I can retrieve 
        //the next question when this function gets called again.
        //The questions are ordered by an order_index and not by id, but they can
        //be stored in the session in their order with some arbitrary index so that
        //the next in line can be retrieved based on the index of the previous.
    }

    ... // Rest of code returns the fetched question to the front-end.
    // If this is the first time that the function is called, the first question is returned.
    //If there are no questions left (previous fetch fetched the last question), return null.
}

如果有人可以帮助我在 Symfony2 中处理会话的代码,因为这是我第一次与他们合作.如果需要,我可以发布测验和问题实体,但我认为没有必要.

If somebody could please assist me with the code on working with sessions in Symfony2 as it is the first time that I am working with them. I can post the Quiz and Question entities if they are required, but I do not think that is necessary.

推荐答案

这里有一个基本的 Symfony2 会话对象示例:http://symfony.com/doc/current/book/controller.html#managing-the-session

You have a basic Symfony2 session object example here: http://symfony.com/doc/current/book/controller.html#managing-the-session

这篇关于Symfony2 会话 >存储&在会话中检索项目的数组/集合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆