में आईडी के बिना एलोक्वेंट के साथ डेटा कैसे अपडेट कर सकता हूं जब मैं FaqTrans
डेटाबेस अपडेट करना चाहता हूं, लेकिन इस डेटास में दो प्राथमिक कुंजी (faq_ida और lang) $table->primary(array('lang', 'faq_id'));
हैं। इसलिए मुझे auto_increment के साथ id
कॉलम की आवश्यकता नहीं है।मैं लैरवेल 4
हालांकि, जब मैं डेटाबेस को अद्यतन करने के लिए निम्न कोड का उपयोग करता हूं, तो त्रुटि संदेश मुझे संकेत देता है कि id
कॉलम नहीं है।
$faq_trans = FaqTrans::where('faq_id','=',$faq_id)->where('lang','=',$lang)->first();
$faq_trans->lang = Input::get('lang');
$faq_trans->body = Input::get('body');
$faq_trans->title = Input::get('title');
$faq_trans->save();
त्रुटि संदेश
SQLSTATE [42S22]: कॉलम नहीं मिला: 1054 अज्ञात स्तंभ 'आईडी' में 'जहां खंड' (एसक्यूएल: अद्यतन
FAQtrans
सेटbody
=,updated_at
= जहां?id
रिक्त है) (बाइंडिंग: सरणी (0 => 'adfadaaadfadaa', 1 => '2013-07-04 11:12:42',))
और जब मैं एक अतिरिक्त id
कॉलम, कोड ठीक काम करता है ...
क्या मैं आईडी कॉलम के बिना डेटाबेस को अपडेट कर सकता हूं?
आप अपने मॉडल –
में प्राथमिक कुंजी मैं मॉडल में प्राथमिक कुंजी सेट करने की कोशिश की स्थापित किया था मदद करता है, लेकिन यह प्रतीत एक बार (समग्र कुंजी) में दो प्राथमिक कुंजी सेट नहीं कर सकते, जैसे 'संरक्षित $ primaryKey = array ('lang''faq_id'); ' –
आपको सहेजने के बजाय' -> अद्यतन (सरणी ('कॉलम' => 'मान')) का उपयोग करना पड़ सकता है। –