2015-05-05 12 views
25

मैं लैरवेल 5 में नया हूं और मैं अपने आवेदन में सभी रूपों को प्रमाणित करने के लिए नए फॉर्म अनुरोध का उपयोग करने की कोशिश कर रहा हूं।लार्वेल 5 फॉर्म अनुरोध में अनुरोध मार्ग पैरामीटर का उपयोग कैसे करें?

अब मैं उस बिंदु पर फंस गया हूं जहां मुझे संसाधन को हटाने की आवश्यकता है और मैंने प्राधिकरण विधि का उपयोग करने के लिए DeleteResourceRequest बनाया है।

समस्या यह है कि मुझे रूट पैरामीटर में कौन सी आईडी का अनुरोध किया जा रहा है, लेकिन मुझे यह नहीं पता कि प्राधिकरण विधि में इसे कैसे प्राप्त किया जाए।

मैं बहुत तरह नियंत्रक विधि में आईडी का उपयोग कर सकते हैं:

public function destroy($id, DeletePivotRequest $request) 
{ 
    Resource::findOrFail($id); 
} 

लेकिन यह कैसे इस फार्म अनुरोध के अधिकृत विधि में काम करने के लिए प्राप्त करने के लिए?

उत्तर

44

यह बहुत आसान है, बस route() विधि का उपयोग करें।

public function destroy($id, DeletePivotRequest $request) 
{ 
    if ($request->route('id')) 
    { 
     // 
    } 

    Resource::findOrFail($id); 
} 
+0

त्वरित प्रतिक्रिया के लिए धन्यवाद (ठूंठ inventory/manufacturers के अंतिम भाग के एकमात्र संस्करण) था। मैंने डीडी किया ($ यह-> मार्ग ('आईडी')); अधिकृत विधि में। यह शून्य वापस आ रहा है। :( – Rohan

+5

यदि आप संसाधन मार्गों का उपयोग कर रहे हैं तो पैरामीटर का नाम संसाधन का नाम होना चाहिए। उदाहरण के लिए 'पोस्ट'' अगर आपको 'रूट :: संसाधन ('पोस्ट', ...)' – lukasgeiter

+0

हाँ मैंने सोचा आखिरकार वह रूट ऑब्जेक्ट को डंप करके बाहर कर देता है। बहुत बहुत धन्यवाद। :) – Rohan

5

आप रोशन के माध्यम से एक मार्ग पैरामीटर मूल्य तक पहुँचने कर सकते हैं \ http \ अनुरोध उदाहरण के लिए, एक नियंत्रक के भीतर से: मान लिया जाये कि अपने मार्ग पैरामीटर id कहा जाता है

use Route; 

... 

Route::current()->getParameter('id'); 

मुझे यह उपयोगी लगता है यदि आप एक से अधिक रूट पैरामीटर के साथ एक से अधिक रूट के लिए एक ही नियंत्रक विधि का उपयोग करना चाहते हैं, और शायद सभी पैरामीटर हमेशा नहीं होते हैं मौजूद है या एक अलग क्रम में दिखाई दे सकता है ...

i.e getParameter('id') आपको यूआरएल में {id} की स्थिति के बावजूद सही जवाब देगा।

Laravel Docs: Accessing the Current Route

4

Laravel 5,2

public function authorize(){ 
    $id = $this->route('id'); 
} 
0

देखें मैं यहाँ एक जवाब की तलाश में आया था और एक तरह से टिप्पणी में यह पाया है, तो के रूप में उल्लेख एक रूप अनुरोध

में इस का उपयोग करने की कोशिश कर एक संसाधन मार्ग का उपयोग कर दूसरों के लिए स्पष्ट करना चाहता था उसकी टिप्पणी में लुकास द्वारा: एक संसाधन नियंत्रक Route::resource('post', ...) पैरामीटर का उपयोग कर सकते post

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

मेरे मामले में, मार्ग $router->resource('inventory/manufacturers', 'API\Inventory\ManufacturersController');

और पैरामीटर उपलब्ध के रूप में परिभाषित किया गया था manufacturer

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