두 테이블 사이에 관계를 추가 할 때 외부 테이블의 업데이트시 및 삭제시 이벤트에 트리거를 추가 할 수있는 옵션이 제공됩니다. 이제 외부 테이블을 삭제하면 On-Delete 이벤트가 로컬 테이블에서 트리거된다는 것을 알고 있습니다.업데이트시 및 삭제시 트리거
이 예는 일대일 관계의 사용자 및 프로필입니다. Propel에서는 외래 키를 사용하여 쿼리하는 것보다 첨부 된 레코드를 찾는 것이 더 간단한 기능을 제공합니다. 이제 CASCADE의 On-Delete 트리거를 사용하여 사용자 테이블에 대한 외래 키로 기본 키를 설정했습니다. 즉, 사용자 레코드를 삭제하면 프로필 레코드도 제거됩니다.
이제 계단식 On-Update 트리거는 무엇입니까? propel을 사용할 때 프로필을 저장하지 않고 프로필을 변경할 수 있고 프로필에 대해 계단식 업데이트가 있으면 사용자를 저장할 때 프로필 정보를 자동으로 저장/업데이트합니까??
표가 Propel에 대해 알지 못하므로 그 이유는 On-Update에 대한 다른 이유가 있어야하고 the Propel documentation은 On-Delete 트리거의 사용에 대해서만 설명하기 때문입니다.
Propel과 관련된 모든 종류의 통찰력이 크게 감사하겠습니다. 일부 일반적인 정의는 내가 찾고있는 것이 아닙니다.
괜찮 았어. 그래서 만약 getprofile() (내 1-1 관계 때문에)을 호출하여 프로파일을 수화 시키면, 사용자가'save()'를 호출하면 프로필이 자동으로 업데이트된다. (아는 프로파일이 수정되었습니다)? –
예. 관계의 반대편에서도 마찬가지입니다. – prodigitalson
후속 조치. '$ profile = $ user-> getProfile();'을 실행하면 다음과 같이 수정됩니다 :'$ profile-> setName ('Member');'그러면'$ user' ,'$ profile'도 잘 저장 될 것입니다. ('getProfile()'은 일대일 관계를 사용할 때 내장 된 Propel 메소드입니다, OP의 링크를보세요) –