【问题标题】:I would like to create a Quiz generator using CakePHP我想使用 CakePHP 创建一个测验生成器
【发布时间】:2011-07-30 13:08:44
【问题描述】:

我有兴趣创建一个可以创建测验的应用程序,方法是提供测验名称、问题和 4 个可能的答案(1 个正确,3 个错误)。用户可以访问这些测验,并且某些用户类型可以编辑它们,而其他用户可以回答它们。

我应该将不同表格中的问题和答案分开吗?还是我应该只有一个问题表,其中包含 4 个字段的答案?

如果您以前这样做过,在创建此测验生成器时我还应该考虑哪些其他因素?

【问题讨论】:

    标签: php model-view-controller cakephp


    【解决方案1】:

    我想说你们的关系应该是这样的:

    User hasMany Quiz
    Quiz hasMany Question
    Question hasMany Answer
    
    Quiz belongsTo User
    Question belongsTo Quiz
    Answer belongsTo Question
    

    如果要求发生变化,这将允许您有 4 个以上的答案。

    可能需要考虑的事项:

    你将如何测试答案是否正确?布尔值,字符串比较?

    如果给定的问题要求您在“是/否”或“真/假”的情况下无法轻易显示出来怎么办?如果你想限制为多项选择,这个问题可能永远不会出现,但它可能会出现。

    你打算如何给测验评分?另一个存储用户测验历史统计信息的表?还是一次性使用会话?

    使用全部保存

    // view
    echo $this->Form->create('Question', array('action'=>'add'));
    echo $this->Form->input('Question.name', array('label'=>'Question name'));
    echo $this->Form->input('Answer.0.title', array('label'=>'Answer'));
    // etc
    
    // add method
    if (!empty($this->data)) {
        $this->Question->saveAll($this->data, array('validate'=>'first'));
    }
    

    应该就是你所需要的~

    【讨论】:

    • 太好了,我就是这么想的。为了创建测验,我想要一个表格,您可以在其中设置测验标题、问题及其相关答案。我设法使用 SaveAll() 获得了带有问题的测验表格,但答案没有被保存。有什么想法吗?
    • 检查manual。不确定您尝试了什么,我已将基本想法添加到我的答案中,但任何额外的内容可能应该在一个新问题中。
    • 是的,刚刚创建了另一个问题。不管怎么说,多谢拉! :)
    • 如何将提交的测验保存在表格中???并让它记录所有答案,以便有人可以看到选择了什么?
    猜你喜欢
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    相关资源
    最近更新 更多