在CakePHP中插入计算机生成的输出

时间:2016-03-30 20:15:09

标签: php mysql cakephp

下午好, 我有一个CakePHP文件(我的视图中的我的CTP文件),可以评判评分。现在已经将分数标准化了,我想将它们插入到数据库中以便稍后在CSV文件中打印。我尝试过几种不同的东西,但没有任何效果。目标是输入我的代码生成的标准化分数。我知道如何在CakePHP中插入用户输入。给我带来麻烦的是插入代码生成的数据。我正在使用CakePHP V2和MySQL Workbench。下面是我到目前为止的代码。它从数组中获取标准化分数,然后在网页上打印

if($post['poster']['posterid'] == $current){
            if($count<2){
                $allPresenters[$current] = $post['poster']['author'];
                echo "<tr><td>".$post['poster']['posterid']."</td>";
                echo "<td>".$post['poster']['author']."</td><td>".$post['judge']['first']." ".$post['judge']['last']."</td>";
                echo "<td>".$allScores[$post['Post']['id']]."</td><td>".$normalizedScores[$post['Post']['id']]."</td></tr>";
                $localTotal += ($allScores[$post['Post']['id']]);  
                $normalTotal += ($normalizedScores[$post['Post']['id']]);
                $count++;       
                //Insert Normalized score here
            }
        }
        else{
            echo "<tr><td></td><td></td><td>Total Score:</td><td>".$localTotal."</td><td>".$normalTotal."</td></tr>";
            $allNormalScores[$current] = $normalTotal;
            $allScores2[$current] = $localTotal;
            $current = $post['poster']['posterid'];
            $localTotal =0;
            $normalTotal =0;
            $count = 0;
            echo "<tr><td>".$post['poster']['posterid']."</td>";
            echo "<td>".$post['poster']['author']."</td><td>".$post['judge']['first']." ".$post['judge']['last']."</td>";
            echo "<td>".$allScores[$post['Post']['id']]."</td><td>".$normalizedScores[$post['Post']['id']]."</td></tr>";
            $localTotal += ($allScores[$post['Post']['id']]);  
            $normalTotal += ($normalizedScores[$post['Post']['id']]);
            //Insert normalized score here
        }

    }

以下是我的模特

<?php
App::uses("ConnectionManager","Model/ConnectionManager");
class Post extends AppModel{
    public $name = "Post";
    public $belongsTo = array("poster","judge");
    public $validate = array(
        'poster_id' => array(
            'rule' => 'notEmpty'
        ),
        'criteria1' => array(
            'rule' => 'notEmpty'
        ),
        'criteria2' => array(
            'rule' => 'notEmpty'
        ),
        'criteria3' => array(
            'rule' => 'notEmpty'
        ),
        'criteria4' => array(
            'rule' => 'notEmpty'
        ),
        'criteria5' => array(
            'rule' => 'notEmpty'
        ),
        'criteria6' => array(
            'rule' => 'notEmpty'
        ),
        'criteria7' => array(
            'rule' => 'notEmpty'
        ),
        'criteria8' => array(
            'rule' => 'notEmpty'
        ),
        'criteria9' => array(
            'rule' => 'notEmpty'
        ),
        'criteria10' => array(
            'rule' => 'notEmpty'
        ),
        'comments' => array(

        ),
         'Normalized' => array(

        )


    );

    public function isOwnedBy($post, $user) {
        return $this->field('id', array('id' => $post, 'user_id' => $user)) === $post;
    }
}

1 个答案:

答案 0 :(得分:0)

如果要通过POST将已呈现的数据插入到数据库中,则需要在页面中创建表单并将数据添加到表单中。

然而,如果规范化数据是可以在没有用户交互的情况下以编程方式完成的,那么我不会&#39;看看将它渲染到视图的需要是什么。您可以在模型中处理它,将其持久保存到数据库,然后将标准化数据渲染(如果需要)到视图中。

你真的应该计算视图中的数据和数字,这是模型层的用途。