CAKEPHP MYSQL आदेश ISSUE - mysql, cakephp

मैं एक समस्या से मिलता हूं, और मैं इसे हल करना नहीं जानता।
मेरे पास एक टेबल है, orders
हमारा ग्राहक केवल उन आदेशों को प्रदर्शित करना चाहता है जो "स्वीकृत" नहीं हैं।
पहले, मुझे लगा कि यह आसान था, उपयोग कर रहा है find("order_status!="=>"approved" )...
यह डेटाबेस त्रुटि प्रदर्शित करता है

1064 - आपके एसक्यूएल सिंटैक्स में एक त्रुटि है;"ऑर्डर इन" ("12", NULL, "", NULL, "08/22/2012", "हाँ", "नहीं", NULL, के पास उपयोग करने के लिए सही सिंटैक्स के लिए आपके MySQL सर्वर संस्करण से मेल खाती पुस्तिका को देखें। लाइन 1 पर "आरएन टेस्ट दा"

कई बार विफल होने के बाद (सभी संबंधित तालिकाओं को हटा दिया, वाक्यविन्यास की जाँच, phpadmin में sql लिखें)

मैंने सोचा था कि समस्या एक आरक्षित शब्द है और Cakephp स्वचालित रूप से विदेशी को आदेश के रूप में सेट कर देगा।

इसलिए मैंने क्वेरी $ का उपयोग किया-> ऑर्डर-> क्वेरी ("ऑर्डर से चयन करें जहां ऑर्डर_स्टैटस =" अनुमोदित ";"); मुझे एक और त्रुटि मिली:

त्रुटि: SQLSTATE [42S22]: कॉलम नहीं मिला: 1054 अज्ञात कॉलम "आदेश" "जहां खंड" में

दरअसल, CakePHP अभी भी एक ही काम करता है, "... FROM orders जैसा Order..."

url से: / ऑर्डर? ऑर्डर_स्टैटस = स्वीकृत, यह काम करता है, लेकिन मुझे नहीं पता कि कैसे व्यक्त करना है? = "स्वीकृत"

इसे कैसे जोड़ेंगे? मैं आदेश तालिका का नाम नहीं बदलना चाहता।

उत्तर:

जवाब के लिए 0 № 1

यह कुछ ऐसा होना चाहिए:

$this->Order->find("all", array(
"conditions"=>array(
"NOT"=>array("Orders.order_status"=>"approved")
)
));

इसके अलावा आपको इस प्रकार के सामान के लिए पूर्णांक 1 या 0 का उपयोग करना चाहिए, बल्कि तार, अगर में उपयोग करना आसान है। अप्रयुक्त के लिए स्वीकृत 0 (डिफ़ॉल्ट) के लिए 1 की तरह।


जवाब के लिए 0 № 2

यह मेरे शिक्षक का है, और यह काम करता है।

$this->set("orders", $this->paginate("Order", array("Order.order_status !=" => "Approved")));

और मुझे अभी भी यह पता नहीं है कि यह काम क्यों नहीं करता है, जब पहली बार (सभी, स्थिति) का उपयोग करके सरणी प्राप्त करते हैं, तो इसे पेजेट करने के लिए असाइन करें ...