2011-01-26 2 views
0

저는 케이크에 비교적 익숙합니다. 그리고 다시 한번 제가 원하는 것을 얻기 위해 어떻게해야하는지에 대해 고민하고 있습니다. 나는 정말로 내가 원하는 것을하는 "올바른"방법을 찾고 싶다.CakePHP 1.3에서이 모델의 다른 인스턴스와 관련된 모델로 저장

저는 지난 달의 목표에 어떻게 대처했는지 검토하기 위해 매월 사용되는 "성능"시스템을 구축하고 있습니다.

이번 달의 리뷰는 새로운 목표를 설정하고 지난 달에 대한 결과도 기록합니다.

많은 목표가있는 검토 모델이 있습니다.

이번 달 편집보기 검토 지난 달의 리뷰 &의 일부 데이터를 지난 달의 리뷰와 관련된 목표의 일부 필드로 표시합니다.

이번 달 목표를 설정할 수있을뿐만 아니라 지난 달 목표에 대한 결과를 저장해야하므로 현재 검토와 관련된 목표에 데이터를 저장할 수있을뿐만 아니라 다른 목표도 저장할 수 있습니다.

"관련없는"목표를 저장하려고하면 CakePHP가 review_id를 현재 ID의 ID로 강제 설정합니다. - Review : afterSave 콜백에서 반복을 시도하고 각 review_id를 확인해 보았습니다. review_id 값을 Goal-> save로 변경하면 데이터베이스는 내가 설정 한 ID가 아닌 현재 검토 ID로 업데이트됩니다.

현재 모델의 다른 인스턴스와 관련된 모델에 저장하는 "케이크"방법은 누구에게 말해 줄 수 있습니까? 이것은 가능한가?

답변

0

좋아,이 방법이 가장 효율적인 방법은 아닐지 모르지만 마감일입니다.

그래서 지난 달의 리뷰를 검색하는 대신 지난 달 쿼리의 ID를 찾기 위해 subselect가있는 finderQuery를 사용하여 또 다른 "hasMany"관계를 생성하고이를 사용하여 해당 review_id로 목표를 선택했습니다. 그것은 여기에 설명 된대로 현재 검토의 ID를 찾을 수 {$__cakeID__$}을 사용

http://book.cakephp.org/view/1039/Associations-Linking-Models-Together#hasMany-1043

모든 것이 서로 관련 케이크가 이해할 수있는 방식으로하기 때문에 상황은 시려면에 자동으로 업데이트됩니다.

이것은 지난 달의 목표를 이번 달 검토와 관련있는 어리석은 subselect 쿼리가 있음을 의미하지만 리뷰가 작동합니다.

언젠가 나는 데이터베이스를 울리지 않도록 최적화하는 방법을 알게 될 것입니다 ....

관련 문제