Система опросов для Symfony2

Я хочу сделать систему опросов на моем сайте, как http://dilemmaplugin.com/это то, что я хочу, но только для Wordpress...

Я не знаю, есть ли какой-нибудь плагин для Symfony2, я искал, но ничего... Поэтому я хотел бы попросить вас рассказать о том, как это сделать, используя caché/ip, чтобы не голосовать дважды... Это где я заблудился, голосование основное, я думаю

База данных будет как

id     question              option_a       option_b
1      PS4 or Xbox One?      1523           1102

Так что, если вы нажмете две кнопки, поля опций будут иметь значение +1, просто как ABC, но как насчет кэша / ip, предотвращающего дублирование голосов?

Я также думал о том, чтобы сделать какой-нибудь карусельный div, который будет содержать случайные голоса при нажатии next но это может быть сделано через Json, я думаю, просто запросив DB с помощью Ajax...

Спасибо

1 ответ

Решение

Если вы хотите / должны придерживаться своей текущей схемы, один из способов предотвращения дублирования голосов по IP-адресу заключается в том, что вы можете использовать что-то вроде http://memcached.org/(очень быстро) и для каждого голосования сохраняйте идентификатор вопроса и IP-адрес. Если вы используете Doctrine в качестве ORM, вы можете использовать preUpdateEvent для проверки существования IP-адреса.

Вы можете настроить собственное ограничение валидации для вашей сущности, чтобы также проверить IP-адрес, что дает преимущество в представлении дружественных сообщений вашим формам.

Другая возможность - настроить прослушиватель событий в вашем контроллере или диспетчере моделей для проверки IP-адреса.

Надеюсь, что это заставит вас двигаться в каком-то направлении.

Другие вопросы по тегам