Thorsten
Thorsten

Reputation: 333

CakePhp does update instead of insert new data

i started using cakephp, but now i encountered a problem which i am not able to solve.

I have got the following model relations which are relevant:

Exercise hasMany Points Student hasMany Points,

now i want to check in the studentsController if for every exercise there is a Point data set, and iff not insert a new one.

When starting with no Point datasets, the function adds a new Point dataset for the first exercise correct, but after this it only updates the erxercise_id of this dataset, instead of creating new ones.

The controller function looks like this:

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
    {

    }
}

Upvotes: 1

Views: 3094

Answers (2)

EbinPaulose
EbinPaulose

Reputation: 1139

$this->Student->Point->id = '';
$this->Student->Point->save($emptyPoints);
or

 $this->Student->Point->saveAll($emptyPoints);

Upvotes: 0

user1427811
user1427811

Reputation:

if you have to insert a data you to use create() method like this: This is only an example, with this line you create every time a new record into your database and save data

$this->Student->Point->create();
$this->Student->Point->save($emptyPoints);

Upvotes: 2

Related Questions