2009-12-18 2 views
0

CakePHP의 승인을 받아 레코드 편집을 처리하는 가장 좋은 방법에 관한 정보를 찾을 수 없었습니다.CakePHP에서 승인 된 레코드 편집을 처리하는 데 권장되는 방법은 무엇입니까?

특히 사용자가 레코드에서 데이터를 편집 할 수 있도록 허용해야하지만 관리자가 변경을 승인 할 때까지 편집 된 데이터가 원래 레코드 데이터를 덮어 쓰면 안됩니다. 편집 된 레코드를 새 테이블에 넣은 다음 원본을 덮어 쓸 수는 있지만,이 아이디어가 케이크 철학과 잘 어울리지 않는 것처럼 쉬운 방법이 있는지 궁금합니다.

답변

2

관리자가 승인 할 때까지 데이터를 저장할 어딘가가 필요합니다.

새 편집 및 원래 게시물 ID가있는 다른 테이블을 만드는 것보다 쉬운 방법이 아닌지 잘 모르겠습니다. 그런 다음 관리자가 편집을 승인하면 스크립트는 이전 레코드를 편집 된 버전으로 덮어 씁니다.

1

나는 비슷한 설정을하고 있는데, 동일한 테이블에 초안 레코드를 저장하고 있지만 "초안"이라는 레코드에 플래그가 설정되어 있습니다. 또한 원본 레코드에는 초안 레코드의 ID가 저장된 "draft_id"필드가 있습니다.

그런 다음 모델에서 디스플레이 엔진이 원본 레코드를로드하면 정상적으로 표시됩니다. 그러나 편집 작업이나 미리보기 작업이 레코드를로드하려고하면 "draft_id"필드를 확인한 다음 다른 레코드가로드되면로드합니다.

"draft"플래그는 목록 및 다른 그룹 찾기 유형 작업이 초안 레코드를 움켜 잡는 데 사용됩니다. 이것은 고급 SQL 쿼리로도 해결할 수 있지만 SQL로는 그리 좋지 않습니다.