2015-11-16 18 views

उत्तर

3

क्वेरी स्ट्रिंग को आपके मार्ग में परिभाषित नहीं किया जाना चाहिए क्योंकि क्वेरी स्ट्रिंग यूआरआई का हिस्सा नहीं है।

क्वेरी स्ट्रिंग तक पहुंचने के लिए आपको अनुरोध ऑब्जेक्ट का उपयोग करना चाहिए। $request->query() सभी क्वेरी पैरामीटर की एक सरणी लौटाएगा। आप भी इस तरह के रूप में इसका इस्तेमाल कर सकते हैं एक भी क्वेरी परम वापस जाने के लिए $request->query('key')

class MyController extends Controller 
{ 
    public function getAction(\Illuminate\Http\Request $request) 
    { 
     dd($request->query()); 
    } 
} 

आप मार्ग तो टिप्पणी के लिए इस तरह के

Route::get('/category/{id}'); 

संपादित होगी:

एक उत्पन्न करने के लिए यूआरएल आप अभी भी लार्वेल के भीतर यूआरएल जेनरेटर का उपयोग कर सकते हैं, सिर्फ यूआरएल के साथ उत्पन्न होने वाले क्वेरी पैराम्स की एक सरणी प्रदान करें।

url('route', ['query' => 'recent', 'order' => 'desc']); 
+0

ठीक है। तो, मैं इसे अपने विचार से कैसे कहूं? –

+0

आपके विकल्प आपके नियंत्रक में वेरिएबल सेट करना चाहते हैं और उन्हें सामान्य रूप से अपने दृश्य में पास कर सकते हैं (मैं इसे सलाह दूंगा क्योंकि आप उन्हें सत्यापित कर सकते हैं। याद रखें कि वे उपयोगकर्ता इनपुट हैं!)। या आप अपने दृश्य में सीधे मुखौटा का उपयोग कर सकते हैं 'अनुरोध :: क्वेरी() ' – Wader

+0

बात यह है कि मैं ' ' कर रहा था। मुझे लगता है कि अब मैं ऐसा नहीं कर सकता। –

0
Route::get('category/{id}/{query}/{sortOrder}', [ 
    'as' => 'sorting', 
    'uses' => '[email protected]' 
])->where([ 
    'id' => '[0-9]+', 
    'query' => 'price|recent', 
    'sortOrder' => 'asc|desc' 
]); 

और आपका यूआरएल इस तरह दिखना चाहिए: http://category/1/recent/asc। इसके अलावा आपको public निर्देशिका में उचित .htaccess फ़ाइल की आवश्यकता है। .htaccess फ़ाइल के बिना, आपका यूआरएल http://category/?q=1/recent/asc जैसा दिखना चाहिए। लेकिन मुझे यकीन नहीं है कि $_GET पैरामीटर (?q=) के बारे में निश्चित नहीं है।

+0

आपने मेरे प्रश्न को गलत समझा। मैं यह कहता हूं कि आप क्या कह रहे हैं। लेकिन मैं क्वेरी स्ट्रिंग के साथ ऐसा करना चाहता हूं। –

13

आप यूआरएल में अन्य पैरामीटर है, तो आप उपयोग कर सकते हैं;

request()->fullUrlWithQuery(["sort"=>"desc"]) 
+0

गोल्ड उत्तर है! धन्यवाद –