php - Enabling laravel 4 route to read slug instead of id -
मेरे पास लारवेल में निम्नलिखित मार्ग हैं।
रूट :: मिल ('/ {id}', 'होमकंट्रोलर @ प्रोफाइल') - & gt; जहां ('आईडी', '[0- 9 ए-ज़ा-जेड \]] + ');
अगर आईडी
एक डेटाबेस में आईडी से मेल खाती है, उदाहरण: site.com/23
तब मैं डेटाबेस से परिणाम प्राप्त कर सकता हूं उस विशिष्ट आईडी के साथ हालांकि, अगर मैं एक शीर्षक स्लग पूर्व: site.com/this-is-title
की तरह कुछ लाने के लिए चाहते हैं तो यह बिल्कुल भी काम नहीं करेगा। मुझे पता नहीं है कि लार्वेल को एक डेटाबेस id
के अलावा अन्य किसी चीज़ के आधार पर क्वेरी कैसे करें।
मेरा नियंत्रक है:
वर्ग HomeController BaseController का विस्तार करता है {सार्वजनिक फ़ंक्शन प्रोफ़ाइल ($ company_slug) {$ result = ग्राहक :: सभी ($ company_slug); वापसी देखें :: बनाने ("home.profiles", कॉम्पैक्ट ("परिणाम")); }}
यह मेरा टेम्प्लेट है।
@extends ("layout.master") @section ("main-content") & lt; php {{$ Result-> company_slug}}? & Gt; @stop
कोई आउटपुट नहीं है अगर मैं & lt;? Php var_dump ($ परिणाम) करता हूं? & Gt;
मुझे NULL
मिलता है।
लेकिन जैसा कि मैंने कहा था, अगर मैं एक आईडी site.com/32
पास करता हूं तो मुझे उस आईडी के लिए डेटाबेस से परिणाम मिलता है
आप मार्ग मॉडल का उपयोग कर सकते हैं:
समाधान 1: < / Strong>
रूट :: बाँध ('प्रोफाइल', फ़ंक्शन ($ मान) {$ records = Profiles :: where ('company_slug', $ value) - & gt; सभी (); अगर (! $ अभिलेख- & gt; गिनती ()) {ऐप :: पृथक् (404);} और {रिटर्न $ रिकॉर्ड;}}); मार्ग :: मिल ('{प्रोफाइल}', 'होमकंट्रोलर @ प्रोफ़ाइल'); कक्षा होम नियंत्रक BaseController {सार्वजनिक फ़ंक्शन प्रोफ़ाइल ($ प्रोफाइल) {return View :: make ("home.profiles") - & gt; ('प्रोफाइल', $ प्रोफाइल) के साथ; }}
समाधान 2:
रूट :: मिल ('{slug}', 'होमकंट्रोलर @ प्रोफ़ाइल') ; क्लास होम कंट्रोलर बेस कंट्रोलर {सार्वजनिक फ़ंक्शन प्रोफाइल ($ स्लग) {रिटर्न व्यू :: मेक ("होम। प्रोफाइल") -> ('प्रोफाइल', प्रोफाइल :: के साथ जहां ('कंपनी_सल्ग', $ स्लग) - & gt; ()); }}
डॉक्यू उपलब्ध है।
Comments
Post a Comment