मैं cacheCounter
CakePHP
में उपयोग कर रहा हूं, जो संबंधित क्षेत्रों के लिए काउंटर बढ़ाता है।केकेपीएचपी में, आप कैसे निर्धारित कर सकते हैं कि एक संपादन कार्रवाई में कोई फ़ील्ड बदल गया था या नहीं?
उदाहरण, मेरे पास एक व्यक्ति तालिका स्रोत तालिका है। Source.source_id स्रोत तालिका में एक पंक्ति में मानचित्र। प्रत्येक व्यक्ति के पास एक स्रोत होता है, और प्रत्येक स्रोत में कोई भी या कई व्यक्ति पंक्तियां नहीं होती हैं।
cacheCounter
जब मैं किसी व्यक्ति के स्रोत को बदलता हूं तो बहुत अच्छा काम कर रहा है। यह Source.Person_Count
में वृद्धि करता है। ठंडा।
लेकिन जब यह बढ़ता है, तो यह इसे किसी व्यक्ति के गंतव्य स्रोत में जोड़ता है, लेकिन इसे पुराने मान से नहीं हटाता है। मैंने afterSave
में कोशिश की, लेकिन उसने कुछ भी नहीं किया।
तो मैंने अपने मॉडल में afterSave
के लिए कुछ कोड लिखा जो स्रोत स्रोत_आईडी घटाएगा, लेकिन यह हमेशा तब भी किया जब मैं source_id
को भी नहीं बदल रहा था। (तो गिनती नकारात्मक हो गई)।
मेरा प्रश्न: क्या यह बताने का कोई तरीका है कि CakePHP
में मॉडल में कोई फ़ील्ड बदल गया है या नहीं?
मैं कॉलबैक पर स्पष्ट नहीं हूं। क्या इस फ़ंक्शन को नियंत्रक में नहीं बुलाया जाना चाहिए? मैं इसे कैसे कार्यान्वित करूं? –
@ माइकस। आप इसे मॉडल वर्ग में जोड़ देंगे। – 472084