1

我开始使用 cakephp,但现在我遇到了一个我无法解决的问题。

我有以下相关的模型关系:

练习 hasMany Points 学生 hasMany Points,

现在我想检查 studentsController 是否每个练习都有一个点数据集,并且如果不插入一个新的。

当没有点数据集开始时,该函数为第一个正确的练习添加一个新的点数据集,但之后它只更新这个数据集的 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
    {

    }
}
4

2 回答 2

2

如果您必须插入数据,您可以使用这样的 create() 方法:这只是一个示例,使用此行,您每次在数据库中创建新记录并保存数据

$this->Student->Point->create();
$this->Student->Point->save($emptyPoints);
于 2012-09-04T15:12:50.713 回答
0
$this->Student->Point->id = '';
$this->Student->Point->save($emptyPoints);
or

 $this->Student->Point->saveAll($emptyPoints);
于 2012-09-04T15:34:11.343 回答