По id сеанса однозначно можно определить тест и в этому же сеансу привязывать ответы на тест.
А куки можно исплоьзовать чтобы нельзя было начать 2 раза один тест (чтобы перекидывало в существующий сеанс).
Там кстати, в дальнейшем будут пользователи. Мы будем даже для анонимных пользователей создавать user_id чтобы привязывать к нему результаты и чтобы после регистрации сданные ранее тесты отобразились в личном кабинете.
Пока этого нет, можно использовать твою систему кук, как сейчас сделано.
> В смысле, какую подгрузку?
Связанных сущностей. Чтобы он сразу же выбрал и вопрос, и варианты ответа,
это делается через includes()
> А про лишние SQL-запросы, там Yii сам же кеширует все, что кешируется.
Это вряд ли
> Подумываю начать делать сами страницы.
Ок, давай делай
> Да надо было просто все это закинуть в конструктор
Я не против, но тут стоит проверить, но завозмущается ли ActiveRecord и нет
ли у него требованяи чтобы конструктор был без параметров.
>>435643
> Я планирую просто текст.
Тогда ты не сможешь сделать связи в БД (и в модели) между «попыткой ответа» и «выбранным вариантом» и не сможешь писать
$answerAttempt->selectedOptions(* *)
> Можно разрешить редактирование, но с обнулением всех результатов.
Обнулять результаты плохая идея, вообще удалять что-то безвозвратно плохая идея. Лучше тогда сделать редактирование через клонирование теста.
> Чтобы как-то определить, кто какая попытка к какому пользователю относится. Пользователей же нет, так что просто пробить по айди не выйдет.
А нельзя в URL или форме передавать id сеанса?
Пользователь заходит на стартовую страницу, допустим,
/test/start/:test_id
Жмет начать, создается сеанс и его перекиыдвает на
/test/:session_id
По id сеанса однозначно можно определить тест и в этому же сеансу привязывать ответы на тест.
А куки можно исплоьзовать чтобы нельзя было начать 2 раза один тест (чтобы перекидывало в существующий сеанс).
Там кстати, в дальнейшем будут пользователи. Мы будем даже для анонимных пользователей создавать user_id чтобы привязывать к нему результаты и чтобы после регистрации сданные ранее тесты отобразились в личном кабинете.
Пока этого нет, можно использовать твою систему кук, как сейчас сделано.
> В смысле, какую подгрузку?
Связанных сущностей. Чтобы он сразу же выбрал и вопрос, и варианты ответа,
это делается через includes()
> А про лишние SQL-запросы, там Yii сам же кеширует все, что кешируется.
Это вряд ли
> Подумываю начать делать сами страницы.
Ок, давай делай
> Да надо было просто все это закинуть в конструктор
Я не против, но тут стоит проверить, но завозмущается ли ActiveRecord и нет
ли у него требованяи чтобы конструктор был без параметров.