2013-03-07 8 views
5

में एक प्रश्न में की तरह शर्त का उपयोग करते हुए मैं जानने के लिए कि एक ऐसी ही रिकॉर्ड पहले से ही डीबी में मौजूद है इससे पहले कि मैं आगे जाना है और रिकॉर्ड सहेजे कोशिश कर रहा हूँ। मैंने गुमराह किया है और पाया है कि ऐसा क्या दिखना चाहिए लेकिन दुर्भाग्य से नहीं। मैं केकफ़्पी के लिए नया हूं और 'सही क्वेरी को समझ सकता हूं।CakePHP

$this->Tape->recursive = -1; 
$tapeexists = $this->Tape->find('all', array('condition'=>array('Tape.name LIKE'=>'blondie%'))); 
$this->set('output', $tapeexists); 

अगर मैं() दृश्य में प्राप्त परिणाम print_r मैं देख सकता हूँ कि यह सिर्फ चला जाता है और उस तालिका, जिनमें से कोई भी एक नाम कुछ भी दूर से 'ब्लौंडी' की तरह है में सभी परिणाम हो जाता है!

उत्तर

11

मुझे लगता है कि आप बस conditions गलत वर्तनी जब आपके खोज कर रही है:

$tapeexists = $this->Tape->find('all', array('conditions'=>array('Tape.name LIKE'=>'blondie%'))); 

है कि आप अपेक्षित परिणाम देना चाहिए।

डुप्लिकेट की अनुमति नहीं दे के अपने विशेष लक्ष्य के लिए, मैं Tape मॉडल पर एक सत्यापन नियम बनाने की सिफारिश करेंगे। डुप्लीकेट से बचने के लिए डिज़ाइन किया गया एक विशिष्ट अंतर्निहित नियम है, इसलिए आप शायद इसका उपयोग बंद कर देंगे। डेटा सत्यापन here के बारे में और अधिक जानकारी देखें - isUnique कोर सत्यापन नियम की जाँच करें।

+0

ओह प्रिय। विक महसूस करो। वह वास्तव में मुझे परेशान कर रहा था, मुझे और सावधान रहना सीखना होगा। प्रमाणीकरण नियम के बारे में सुझाव के लिए भी धन्यवाद। अच्छा विचार! –

+0

कोई चिंता नहीं है, हम सब शुरुआती एक बार :) इसलिए स्वीकार किए जाते हैं आप कृपया जवाब को चिह्नित कर सकते हैं कर रहे थे के रूप में मैं कुछ प्रतिष्ठा प्राप्त? धन्यवाद! –