cakephp를 사용하기 시작했으나 이제는 해결할 수없는 문제가 발생했습니다. ,CakePhp는 새로운 데이터를 삽입하는 대신 업데이트합니다
운동 hasMany의이 학생, hasMany의 포인트를 포인트,
가 지금은 모든 운동에 대한 포인트 데이터 세트가있는 경우 studentsController에서 확인 할 :나는 관련이있는 다음 모델 관계를 가지고있다 그리고 새 것을 삽입하지 않으면.
포인트 데이터 세트없이 시작하면이 함수는 첫 번째 연습에 대한 새 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
{
}
}
안녕하세요, 이건 내 문제를 해결하기 위해 보이지만 난 여전히 CakePHP의 시도는 다를 업데이트하는 이유를 이해 해달라고 find가 자동으로 새로운 것을 삽입하는 대신에 리턴 할 수없는 taset – Thorsten
이 모드에서 생성되므로 모든 동작을 제어 할 수있는 매우 입자 시스템입니다. 새 레코드를 만들지 않으면 레코드를 만들지 않습니다. 레코드를 uodate해야한다면 id를 설정하고 save() 메소드를 사용해야한다. 이 방법은 매번 새로운 레코드를 만드는 방법입니다() –
난 그냥 내가 항상 새로운 하나를 만들 것입니다 ID를 설정하면 내가 잘못 입증 된 것 같아 – Thorsten