Моя проблема выглядит следующим образом:
Я хочу создать приложение для голосования, в котором люди могут выбрать одно или несколько событий (например, Doodle).Для этого я настроил функцию под названием голосование.В представлении вы можете выбрать события, используя флажки.Модели опроса и группового события.Опрос имеет много групповых событий.Моя проблема заключается в том, что когда я вызываю updateAll()
, все значения связанных групповых событий увеличиваются.
Вот мой код:
Просмотр:
echo $this->Form->create('Poll', array('action' => 'vote'));
for($i=0; $i<$count; $i++){
echo $this->Form->input('Groupevent.'.$i.'.votes', array('type'=>'checkbox',
'label'=>$this->Groupevent['startTime']));
echo $this->Form->input('Groupevent.'.$i.'.id', array('type'=>'hidden'));
}
echo $this->Form->input('id', array('type' => 'hidden'));
echo $this->Form->end('vote');
Функция контроллера:
function vote($id=null){
$this->Poll->id = $id;
if ($this->request->is('get')) {
$this->request->data = $this->Poll->read();
$this->set('count', $this->Poll->Groupevent->find('count',
array('conditions'=>array('Groupevent.poll_id'=>$this->Poll->id))));
} else {
unset($this->Poll->Groupevent->validate['poll_id']);
if ($this->Poll->Groupevent->updateAll(
array('Groupevent.votes'=>'Groupevent.votes+1'),
array('Groupevent.poll_id'=>$this->Poll->id)))
{
$this->Session->setFlash('Your poll has been updated.');
$this->redirect(array('action' => 'edit', $id));
} else {
$this->Session->setFlash('Unable to update your poll.');
}
}
}
Как я могу заставить его работать так, чтобы увеличивались только проверенные значения?
заранее спасибо
Редактировать:
Спасибо запредложить с массивом.Но я пробовал определенные способы, которые не будут работать.Как мне создать этот массив?