Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

सीआरयूडी ऐप में अधिक लारवेल कैसे बनें?

ऐसा लगता है कि आप एक बहुरूपी संबंध स्थापित कर रहे हैं, इस मामले में, मैं सब कुछ अलग कर दूंगा जिसका अर्थ है कि आपके पास बिल्ली, कुत्ते, कछुए और पेटडाटा के लिए एक मॉडल होगा। आपके पास कैटकंट्रोलर, डॉगकंट्रोलर और टर्टलकंट्रोलर के लिए कंट्रोलर होंगे। और आपके पास एक कैट फॉर्म, एक डॉग फॉर्म और एक टर्टल फॉर्म होगा, प्रत्येक में आपके पेट_इन्फो टेबल के लिए आवश्यक डेटा के इनपुट भी होंगे।

बहुरूपी संबंध बनाने के लिए, आपकी pet_data तालिका में कुछ परिवर्तनों की आवश्यकता होगी। बस टेबल कॉलम को pet_type . में बदलें . Laravel इस कॉलम के लिए एक निश्चित नाम की अपेक्षा करता है और इसकी सामग्री के लिए आपकी तालिका के नाम के बजाय एक मॉडल का नाम होना चाहिए।

इनके लिए मॉडल सेट करना बहुत आसान है, मैं पेटडाटा और डॉग वन को शुरू करने के लिए करूँगा।

class Dog extends Eloquent 
{
    protected $table = 'dogs_data';
    protected $timestamps = false;

    public function petData()
    {
        return $this->morphMany('PetData', 'pet');
    }
}

class PetData extends Eloquent
{
    protected $timestamps = false;

    public function pet()
    {
        return $this->morphTo();
    }
}

इसके बारे में यहां और अधिक पढ़ सकते हैं... http://laravel.com/docs/eloquent# बहुरूपी-संबंध

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

अब pet_data तालिका में pet_id और pet_type के बारे में चिंता किए बिना पालतू और संबंधित पालतू डेटा को सहेजना बहुत आसान हो गया है, Laravel आपके लिए इसका ध्यान रखेगा। आपके डॉग कंट्रोलर पर फ़ंक्शन इस तरह दिख सकता है...

class DogController extends BaseController
{
    public function save()
    {
        $dog = new Dog;
        $dog->name = Input::get('name');
        $dog->age = Input::get('age');
        $dog->save();

        $pet_data = new PetData;
        $pet_data->color = Input::get('color');
        $dog->petData()->save($pet_data);
    }
}

जहां तक ​​​​व्यवस्थापकों के लिए एक और नियंत्रक बनाने की बात है, मैं कहूंगा कि हां, ऐसा करें। अपनी वेबसाइट के उन हिस्सों को अलग-अलग फाइलों में रखने में कभी दर्द नहीं होता है जिन्हें आप अलग-अलग फाइलों में अलग मानते हैं। यह न केवल संगठन के साथ, बल्कि फिर से, चिंताओं को अलग करने में मदद करता है, जिसके बारे में आपको शायद अधिक पढ़ना चाहिए।

भूमिकाओं के प्रबंधन के लिए कुछ शानदार तृतीय पक्ष विकल्प भी हैं। मैंने zizaco/entrust . का उपयोग किया है पहले और इसे प्रबंधित करना बहुत आसान पाया। आपके वेब ऐप पर कौन क्या कर सकता है, इसे प्रबंधित करने का प्रयास करते समय यह आपके जीवन को बहुत आसान बना सकता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक कॉलम में अधिकतम के साथ पंक्ति का चयन करना - MySQL

  2. jdbc के लिए कोई उपयुक्त ड्राइवर नहीं मिला:mysql netbeans, *.jar लाइब्रेरी में शामिल है

  3. यदि डेटाबेस बदलता है तो सामग्री को स्वचालित रूप से ताज़ा करें

  4. Node.js MySQL मॉड्यूल में mysql.createConnection और mysql.createPool में क्या अंतर है?

  5. मारियाडीबी में REGEXP_REPLACE का उपयोग करके रेगेक्स फाइंड-एंड-रिप्लेस के लिए सही सिंटैक्स क्या है?