我开始使用cakephp,但现在我遇到了一个我无法解决的问题。
我有以下相关的模型关系:
锻炼有很多分数 学生有很多积分,
现在我要检查studentsController是否每次练习都有一个Point数据集,如果没有插入一个新数据集。
当没有Point数据集开始时,该函数为第一个练习添加了一个新的Point数据集,但在此之后它只更新了该数据集的erxercise_id,而不是创建新数据集。
控制器功能如下所示:
public function correct($id = null) {
$this->Student->id = $id;
$this->Student->recursive = 2;
if ($this->request->is('get')) {
$data = $this->Student->Exam->Exercise->find('all');
foreach($data as $exercise)
{
$exerciseID = $exercise['Exercise']['id'];
$this->Student->Point->recursive = 0;
$foundPoints = $this->Student->Point->find('all', array('conditions' => array('exercise_id' => $exerciseID)));
if($foundPoints == null)
{
$emptyPoints = array ('Point' => array(
'exercise_id' => $exerciseID,
'student_id' => $id
)
);
$this->Student->Point->save($emptyPoints);
}
else{
}
}
}
else //POST
{
}
}
答案 0 :(得分:2)
如果您必须插入数据,则使用create()方法,如下所示: 这只是一个示例,每次在数据库中创建新记录时都会创建此行 并保存数据
$this->Student->Point->create();
$this->Student->Point->save($emptyPoints);
答案 1 :(得分:0)
$this->Student->Point->id = '';
$this->Student->Point->save($emptyPoints);
or
$this->Student->Point->saveAll($emptyPoints);