Форма опроса (представление) создает ошибки безопасности в CakePHP - PullRequest
0 голосов
/ 05 августа 2011

Я пишу простой опрос для Cakephp.Я создал таблицы опросов и poll_votes.Опрос содержит 7 столбцов: id, вопрос, количество ответов, answer1, answer2, answer3, answer4.PollVote содержит 4: id, poll_id, ip, voice.Если это сработает, я мог бы добавить новую таблицу под названием PollAnswers, чтобы избавиться от ограничения ответов.

К сожалению, сделанное мной представление вызывает ошибки безопасности.Я бы предпочел использовать помощник по формам в целом, но я не понял, как, так как мне нужны переключатели с несколькими опциями, которые имеют идентификаторы от 1 до 4, но показывают answer1 to answer4.

[daweb@directadmin01 public_html]$ cat models/poll.php
<?php
class Poll extends AppModel {
        var $name = 'Poll';
        var $displayField = 'question';

        var $hasMany = array(
                'PollVote' => array(
                        'className' => 'PollVote',
                        'foreignKey' => 'poll_id',
                        'dependent' => false
                )
        );
}
?>
[daweb@directadmin01 public_html]$ cat models/poll_vote.php
<?php
class PollVote extends AppModel {
        var $name = 'PollVote';

        var $belongsTo = array(
                'Poll' => array(
                        'className' => 'Poll',
                        'foreignKey' => 'poll_id'
                )
        );
}
?>
[daweb@directadmin01 public_html]$ cat views/polls/view.ctp
<h2><?=$polls[0]['Poll']['question']?></h2>
<?php
echo $this->Form->create('Poll');
?>
<br /><p>
<select name="PollName" id="PollFieldId">
<option value="0"><?=$polls[0]['Poll']['answer1']?></option>
<option value="1"><?=$polls[0]['Poll']['answer2']?></option>
<option value="2"><?=$polls[0]['Poll']['answer3']?></option>
<option value="3"><?=$polls[0]['Poll']['answer4']?></option>
</select>
<?php
echo $this->Form->input('id', array('type' => 'hidden'));
echo $this->Form->end('Submit');
?>
</p>
[daweb@directadmin01 public_html]$

Честно говоря, я не уверен, что создаю приложение Poll с правильным дизайном, поэтому приветствуются общие советы.К сожалению, мне не удалось найти примеры опросов, написанных на Cakephp, чтобы помочь мне.

1 Ответ

0 голосов
/ 05 августа 2011

ваш дизайн в порядке, если вам нужно только 4 вопроса для каждого опроса. Измените количество ответов на pollVote_count и используйте counterCache Взгляните на Дизайн базы данных для опроса , хотя это может быть излишним для вашей цели.

для радиовхода, который должен находиться в контроллере pollVotes / add, а не в polls / view:

echo $this->Form->create('PollVote');
echo $this->Form->input('poll_id');
echo $this->Form->input('vote',array('type' => 'radio','options' => $polls[0]['Poll']));
echo $this->Form->end('Submit');
...