मैंने अभी Eloquent's (Laravel 5.2.10) डिफ़ॉल्ट टाइमस्टैम्प के साथ एक झगड़ा मारा। डिफ़ॉल्ट रूप से $table->timestamps()
विधि आपको आपकी तालिका में created_at
और updated_at
कॉलम देता है जो तदनुसार अपडेट किया जाता है।Laravel Eloquent बनाया गया_at अपडेट हो रहा है
हालांकि, जब मैं कुछ परीक्षण प्रविष्टियों कोशिश कर रहा था, मैंने देखा है जब आप एक रिकॉर्ड को अपडेट, updated_at
क्षेत्र एकदम सही ढंग से अद्यतन किया जाता है कि,, लेकिन created_at
क्षेत्र भी अद्यतन हो जाता है: इसकी घंटे बनाई समय में रहता है , लेकिन updated_at
फ़ील्ड से मेल खाने के लिए मिनट और सेकंड अपडेट हो जाते हैं।
+---------------------+---------------------+
| created_at | updated_at |
+---------------------+---------------------+
| 2016-01-13 17:13:27 | 2016-01-13 22:13:27 |
| 2016-01-13 16:14:41 | 2016-01-13 21:14:41 |
+---------------------+---------------------+
सूचना है कि मिनट और सेकंड created_at
और updated_at
क्षेत्र के लिए ठीक उसी प्रकार हैं:
तो वह भी अधिक शब्दों था, यहाँ एक उदाहरण है।
मैंने Model
कक्षा को देखने का प्रयास किया जहां टाइमस्टैम्प सेट हैं, लेकिन यह setCreatedAt()
विधि को वास्तव में रिकॉर्ड अपडेट करते समय नहीं कहा जाता है।
क्यों ऐसा होता है?
कैसे क्या मैं created_at
फ़ील्ड को बदलने से रोकता हूं? (अधिक महत्वपूर्ण)
मैंने एक 'संगीतकार अद्यतन' चलाया जो मुझे 5.2.10 तक लाया, लेकिन 'टाइमस्टैम्प()' विधि अभी भी ठीक से काम नहीं कर रही थी।हालांकि, 'nullableTimestamps() 'ठीक काम करता है इसलिए मैं इसका उपयोग अभी करूँगा (जिस मुद्दे पर आपने मुझे इंगित किया था यह इंगित करने के लिए कि यह डिफ़ॉल्ट' टाइमस्टैम्प() 'व्यवहार बन जाएगा, लेकिन अभी के लिए यह अभी भी काम नहीं करता है मेरे लिए। वैसे भी, धन्यवाद! – tam5
@tam इसके बारे में क्षमा करें। 5 घंटे पहले (लैरवेल 5.2.9+) के रूप में, परिवर्तनों को वापस कर दिया गया है, इसलिए 'useCurrent() 'डिफ़ॉल्ट व्यवहार नहीं है। इससे लोगों के साथ कुछ समस्याएं हुईं जो MySQL के पुराने संस्करण का उपयोग कर रहे हैं। –
कोई समस्या नहीं। वैकल्पिक और स्पष्टीकरण के लिए धन्यवाद – tam5