2010-04-26 11 views
10

क्या यह एक नियंत्रक कार्रवाई में कई मॉडलों के साथ काम करने की बुरी आदत है? क्या यह हमेशा एक नियंत्रक की तरह होना चाहिए-एक मॉडल-एक दृश्य?PHP और एमवीसी, एकाधिक मॉडल

+1

उत्कृष्ट सवाल! यह दयालु है कि कोई भी ऐसे प्रश्नों की परवाह नहीं करता है! – Sliq

उत्तर

11

नहीं, बेशक यह एक बुरी आदत नहीं है। जहां आप एकाधिक तालिकाओं के साथ काम करते हैं, तो विभिन्न मॉडलों की आवश्यकता होगी।

समस्या इस के साथ इतना अधिक नहीं है, लेकिन इन मॉडलों के आधार पर उन्नत प्रश्नों को संभालने के लिए ढांचे की क्षमता के साथ ढांचे और फ़िल्टरिंग की क्षमता है। यह उन बगबियरों में से एक है जब आप डेटाबेस इंटरैक्शन के बारे में एक ढांचे के विशेष सौंदर्यशास्त्र का पालन करने के लिए "बाध्य" होते हैं, लेकिन यह निश्चित रूप से निर्भर करता है कि कौन सा ढांचा और आप जादू व्यवहार पर कितना भरोसा कर रहे हैं।

प्रत्येक परियोजना एक साधारण ब्लॉग नहीं है! :)

संपादित करें: मुझे यह भी कहना चाहिए कि इस तरह की चीज सामान्य रूप से एमवीसी ढांचे के साथ मेरी मुख्य पकड़ में से एक है। आपकी परियोजना जो हासिल करने का प्रयास कर रही है, उसके बीच समझौता, और फ्रेमवर्क की अनुमति हमेशा होती है जहां बालों को खो दिया जाता है और देर रातें निवेश की जाती हैं ..

+0

तेजी से उत्तर के लिए धन्यवाद! – PPPHP

+0

मेरी राय में आपका अधिकांश कोड आपके मॉडल में होना चाहिए, जिसमें से कई कक्षाएं होंगी। निश्चित रूप से मॉडल और नियंत्रकों के बीच एक-से-एक मैपिंग नहीं। यह एक बुरी बात होगी। – d11wtq

+0

हाँ, हर कोई वसा मॉडल प्यार करता है :) – dmp

4

मैं कल्पना नहीं कर सकता कि केवल एक मॉडल के साथ काम करने में सक्षम होना समय पर। उन डेटाबेस को किसी कारण से 'संबंधपरक डेटाबेस' कहा जाता है। सभी टेबल एक दूसरे के साथ बातचीत करते हैं।

मैंने वास्तव में एक ढांचा का उपयोग किया जो केवल उस नियंत्रक से जुड़े एक मॉडल को लोड करने की अनुमति देता था। निश्चित रूप से एक भयानक अनुभव, काम करने वाले एकमात्र ऑपरेशन बुनियादी सीआरयूडी कार्य थे।

+0

तेज़ उत्तर के लिए धन्यवाद! – PPPHP

1

हर किसी की तरह यह कह रहा है, आप जो चाहते हैं उसे करने के लिए स्वतंत्र हैं। मैं सुझाव देता हूं कि आप जिस ढांचे का उपयोग कर रहे हैं, उसके लिए साइट को देखें, और देखें कि अन्य लोग इसका उपयोग कैसे कर रहे हैं। उनके पास अक्सर "XXXX फ्रेमवर्क का उपयोग करने वाली परियोजनाएं" होती हैं।

और सैनिकों की टिप्पणी की तरह, 1 तालिका हमेशा एक मॉडल के बराबर नहीं होती है। बुनियादी सक्रिय रिकॉर्ड पैटर्न (जैसे कोडइग्निटर) का उपयोग करने वाले कुछ उदाहरण 1 टेबल 1 मॉडल विधि के साथ जाते हैं।

2

नहीं, यह एक बुरा अभ्यास नहीं है।

नियंत्रक आपके डेटा मॉडल से अधिक HTTP संसाधनों (उर्फ यूआरआई) को मानचित्र करते हैं। एक निश्चित संसाधन (उपयोगकर्ताओं, उत्पादों, ...) के लिए अनुरोध अक्सर विभिन्न स्थानों से डेटा लोड करने और/या भंडारण की आवश्यकता हो सकती है (एक डीबी तालिका, फ़ाइल सिस्टम, एक दूरस्थ वेब सेवा, ...), इसलिए 1: 1 नियंत्रक: मॉडल मैपिंग शायद नियम के बजाय अपवाद भी है। जब तक आपकी वेबसाइट वास्तव में सरल नहीं है।

संबंधित मुद्दे