下午好, 我有一个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;
}
}
答案 0 :(得分:0)
如果要通过POST
将已呈现的数据插入到数据库中,则需要在页面中创建表单并将数据添加到表单中。
然而,如果规范化数据是可以在没有用户交互的情况下以编程方式完成的,那么我不会&#39;看看将它渲染到视图的需要是什么。您可以在模型中处理它,将其持久保存到数据库,然后将标准化数据渲染(如果需要)到视图中。
你真的应该计算视图中的数据和数字,这是模型层的用途。