hello je suis sur un questionnaire de type sondage j'aimerais pouvoir enregistrer la progression du quizz selon l'utilisateur
exemple:l'utilisateur est a la question 15/50 il doit pouvoir se déco et reprendre la ou il étais .
j'arrive a assigné la les réponses a l'utilisateur pas de soucis mais comment garder la progression avez vous une idée? merci beaucoup
alors ici j'ai mon contrôleur ou je récupéré mes réponse via la méthode post
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 class DefaultController extends Controller { /** * @Route("/Reponse/thematique", name="thematique_reponse") * @Method({"GET", "POST"}) */ public function reponseThematique(Request $request) { //instance des repository $userSlpRepo = $this->getDoctrine()->getRepository(UserSlp::class); $reponseThematiqueRepo = $this->getDoctrine()->getRepository(Reponse_thematique::class); $questionMangerRepo = $this->getDoctrine()->getRepository(Manger::class);//ici se trouve toute mes questions $em = $this->getDoctrine()->getManager(); $userSlp = $userSlpRepo->findOneByGaeaUserId($this->getUser()->getId()); $datas = $request->request->all(); foreach ($datas as $data => $value ){ $question = $questionMangerRepo->find($data); $answer = new Reponse_thematique; $answer->setManger($question); $answer->setValue($value); $answer->setUserSlp($userSlp); $em->persist($answer); $em->flush(); } return new response('ok'); }
Quelqu'un aurais une idéé j'ai pensé faire une relation avec une entité "questionnaire-progress" par exemple ou on aura un id,question_id,user_id et pourquoi pas une colonne ou l'on mettrais un booléen si le questionneaire est fini ou pas..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 /** * SurveyProgress * * @ORM\Table(name="survey_progress", indexes={@ORM\Index(name="IDX_7EF6B461B3FE509D", * columns={"questionnaire_id"}), @ORM\Index(name="IDX_7EF6B4611E27F6BF", * columns={"manger_id"}), @ORM\Index(name="IDX_7EF6B461FDDFEACC", * columns={"userSlp_id"})}) * @ORM\Entity */ class QuestionnaireProgress { /** * @var int * * @ORM\Column(name="id", type="integer", nullable=false) * @ORM\Id * @ORM\GeneratedValue(strategy="IDENTITY") */ private $id; /** * @var bool * * @ORM\Column(name="done", type="boolean", nullable=false) */ private $done; /** * @var \Question * * @ORM\ManyToOne(targetEntity="manger") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="question_id", referencedColumnName="id") * }) */ private $manger; /** * @var \Survey * * @ORM\ManyToOne(targetEntity="questionnaire") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="questionnaire_id", referencedColumnName="id") * }) */ private $questionnaire; /** * @var \UserSlp * * @ORM\ManyToOne(targetEntity="UserSlp") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="userSlp_id", referencedColumnName="id") * }) */ private $userslp; }
Partager