fork download
  1. >>435643
  2.  
  3. > Я планирую просто текст.
  4. Тогда ты не сможешь сделать связи в БД (и в модели) между «попыткой ответа» и «выбранным вариантом» и не сможешь писать
  5.  
  6. $answerAttempt->selectedOptions(* *)
  7.  
  8. > Можно разрешить редактирование, но с обнулением всех результатов.
  9. Обнулять результаты плохая идея, вообще удалять что-то безвозвратно плохая идея. Лучше тогда сделать редактирование через клонирование теста.
  10.  
  11. > Чтобы как-то определить, кто какая попытка к какому пользователю относится. Пользователей же нет, так что просто пробить по айди не выйдет.
  12. А нельзя в URL или форме передавать id сеанса?
  13.  
  14. Пользователь заходит на стартовую страницу, допустим,
  15.  
  16. /test/start/:test_id
  17.  
  18. Жмет начать, создается сеанс и его перекиыдвает на
  19.  
  20. /test/:session_id
  21.  
  22. По id сеанса однозначно можно определить тест и в этому же сеансу привязывать ответы на тест.
  23.  
  24. А куки можно исплоьзовать чтобы нельзя было начать 2 раза один тест (чтобы перекидывало в существующий сеанс).
  25.  
  26. Там кстати, в дальнейшем будут пользователи. Мы будем даже для анонимных пользователей создавать user_id чтобы привязывать к нему результаты и чтобы после регистрации сданные ранее тесты отобразились в личном кабинете.
  27.  
  28. Пока этого нет, можно использовать твою систему кук, как сейчас сделано.
  29.  
  30. > В смысле, какую подгрузку?
  31. Связанных сущностей. Чтобы он сразу же выбрал и вопрос, и варианты ответа,
  32. это делается через includes()
  33.  
  34.  
  35. > А про лишние SQL-запросы, там Yii сам же кеширует все, что кешируется.
  36. Это вряд ли
  37.  
  38. > Подумываю начать делать сами страницы.
  39. Ок, давай делай
  40.  
  41. > Да надо было просто все это закинуть в конструктор
  42. Я не против, но тут стоит проверить, но завозмущается ли ActiveRecord и нет
  43. ли у него требованяи чтобы конструктор был без параметров.
  44.  
Success #stdin #stdout 0.02s 24448KB
stdin
Standard input is empty
stdout
>>435643

> Я планирую просто текст.
Тогда ты не сможешь сделать связи в БД (и в модели) между «попыткой ответа» и «выбранным вариантом» и не сможешь писать

$answerAttempt->selectedOptions(* *)

> Можно разрешить редактирование, но с обнулением всех результатов.
Обнулять результаты плохая идея, вообще удалять что-то безвозвратно плохая идея. Лучше тогда сделать редактирование через клонирование теста. 

> Чтобы как-то определить, кто какая попытка к какому пользователю относится. Пользователей же нет, так что просто пробить по айди не выйдет.
А нельзя в URL или форме передавать id сеанса? 

Пользователь заходит на стартовую страницу, допустим, 

/test/start/:test_id

Жмет начать, создается сеанс и его перекиыдвает на 

/test/:session_id 

По id сеанса однозначно можно определить тест и в этому же сеансу привязывать ответы на тест.

А куки можно исплоьзовать чтобы нельзя было начать 2 раза один тест (чтобы перекидывало в существующий сеанс).

Там кстати, в дальнейшем будут пользователи. Мы будем даже для анонимных пользователей создавать user_id чтобы привязывать к нему результаты и чтобы после регистрации сданные ранее тесты отобразились в личном кабинете. 

Пока этого нет, можно использовать твою систему кук, как сейчас сделано.

> В смысле, какую подгрузку? 
Связанных сущностей. Чтобы он сразу же выбрал и вопрос, и варианты ответа, 
это делается через includes()


> А про лишние SQL-запросы, там Yii сам же кеширует все, что кешируется.
Это вряд ли

> Подумываю начать делать сами страницы.
Ок, давай делай

> Да надо было просто все это закинуть в конструктор
Я не против, но тут стоит проверить, но завозмущается ли ActiveRecord и нет 
ли у него требованяи чтобы конструктор был без параметров.