나는 사용자가 있으며 코스가 있습니다. 나는 그들이 코스에 그들을 구독하기 위해 코스리스트를 볼 때 사용자를위한 "Join"버튼을 만들려고합니다.CakePHP 관련 객체
나는
class Course extends AppModel
{
public $hasAndBelongsToMany = array('User');
}
및
class User extends AppModel
{
public $hasAndBelongsToMany = array('Course');
}
를 사용 들었다하지만 실제 버튼과 테이블에 정보의 게시를 구현하는 방법을 모르는
courses_users
라고
어디서 구현합니까? 사전에
감사합니다!
CakePHP는 컨벤션 오버 규칙의 원칙을 기반으로합니다. 코스 모델과 사용자 모델간에 HABTM 관계가있는 경우 DB에 courses_users 테이블이 있다고 가정하고, 사용자와 관련된 사용자를 저장할 때 자동으로 작성합니다 물론, 호출 된 함수가 $ this-> Course-> saveAll() (관련 데이터 저장) 인 경우에도 마찬가지입니다. – Chris
@Chris 이것은 실제로 완벽합니다. 다른 사용자가 같은 코스에 등록 할 때 $ hasAndBelongsToMany가 두 객체에 모두 첨부되어 있어도 새 사용자 이름으로 파일을 덮어 씁니다. 왜 이런 일이 일어날 지 아십니까? – itamar
CakePHP에서 HABTM 데이터를 저장하는 기본 동작은 저장 한 레코드와 관련된 모든 레코드를 삭제 한 다음 데이터에서 레코드를 생성하는 것입니다 (고유 옵션에 대해서는 아래 링크에서 설명) : http : //book.cakephp. org/2.0/ko/models/associations-linking-models-together.html #standany-habtm이있는 경우, 해결책은 '고유'=> keepExisting을 사용하여 habtm 관계를 선언하는 것입니다. – Chris