खोज…


अनुकरणीय बंधन

लारवेल स्वचालित रूप से उन मार्गों या नियंत्रक क्रियाओं में परिभाषित वाक्पटु मॉडल को हल करता है जिनके चर नाम मार्ग खंड नाम से मेल खाते हैं। उदाहरण के लिए:

Route::get('api/users/{user}', function (App\User $user) {
    return $user->email; 
});

इस उदाहरण में, चूंकि मार्ग पर परिभाषित एलोकेंट $ उपयोगकर्ता चर मार्ग के URI में {user} खंड से मेल खाता है, इसलिए Laravel स्वचालित रूप से उस मॉडल उदाहरण को इंजेक्ट करेगा जिसमें ID है जो अनुरोध URI से संबंधित मान से मेल खाता है। यदि डेटाबेस में एक मिलान मॉडल का उदाहरण नहीं मिलता है, तो 404 HTTP प्रतिसाद स्वतः उत्पन्न हो जाएगा।

यदि मॉडल के टेबल का नाम कई शब्दों से बना है, तो इनपुट वेरिएबल को बाइंड करने के लिए इनपुट वेरिएबल सभी लोअरकेस में होना चाहिए;
उदाहरण के लिए, यदि उपयोगकर्ता किसी प्रकार की कार्रवाई कर सकता है, और हम इस क्रिया को एक्सेस करना चाहते हैं, तो मार्ग निम्न होगा:

Route::get('api/useractions/{useraction}', function (App\UserAction $useraction) {
    return $useraction->description; 
});

स्पष्ट बंधन

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

public function boot()
{
   parent::boot();

   Route::model('user', App\User::class);
}

अगला, हम एक मार्ग परिभाषित कर सकते हैं जिसमें {user} पैरामीटर है।

$router->get('profile/{user}', function(App\User $user) {
  
});

चूँकि हमने App\User मॉडल में सभी {user} मापदंडों को बाध्य किया है, उपयोगकर्ता के मार्ग में एक इंजेक्शन लगाया जाएगा। इसलिए, उदाहरण के लिए, profile/1 लिए एक अनुरोध डेटाबेस से उपयोगकर्ता उदाहरण को इंजेक्ट करेगा जिसमें 1 की आईडी है।

यदि डेटाबेस में एक मिलान मॉडल का उदाहरण नहीं मिला है, तो एक 404 HTTP प्रतिक्रिया स्वतः उत्पन्न हो जाएगी।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow