2015-09-14 13 views
5

मैं लैरवेल 5.1 आधारित सिस्टम पर काम कर रहा हूं।विशिष्ट नियंत्रक कार्यों पर ऑथ लैरवेल 5.1

Route::resource('applicant', 'ApplicantController'); 

तो हम उम्मीद करते हैं के रूप में यह नियंत्रक में निम्नलिखित कार्य हैं:

index, create, store, edit, update, delete 

और क्या मैं चाहता हूँ केवल index समारोह में मिडलवेयर प्रमाणन लागू करने के लिए है मैं एक मार्ग संसाधन है। आम तौर पर, यदि आप पूरे नियंत्रक पर प्रमाणीकरण लागू करना चाहते हैं, तो आप क्या करने की जरूरत:

public function __construct() 
{ 
    $this->middleware('auth'); 
} 

लेकिन जब मैं इसे हटाने और बस कार्य करें:

public function index() 
{ 
    $this->middleware('auth'); 
    return view('applicant.index'); 
} 

यह काम नहीं करता। मैंने पहले यह किया है और ठीक काम करता है। यह मेरे ApplicantController में है I create फ़ंक्शन सार्वजनिक होना चाहते हैं और केवल index पर लॉगिन प्रमाणीकरण लागू करें। मैं उपयोग नहीं कर रहे edit, update, delete

उत्तर

5

आप

public function __construct() 
{ 
    $this->middleware('auth', ['only' => 'index']); 
} 

कोशिश कर सकते हैं तुम भी रिवर्स

public function __construct() 
{ 
    $this->middleware('auth', ['except' => ['create', 'store', 'edit', 'update', 'delete']]); 
} 
+0

wows कर सकते हैं, पूरी तरह से काम करता है। धन्यवाद! – jackhammer013

+0

शांत .. खुशी है कि मैं मदद कर सकता हूं। – JLPuro

+0

आपको _construct विधि का उपयोग करने की आवश्यकता नहीं है, क्योंकि जब भी किसी विशेष नियंत्रक के परिवर्तन होते हैं, तो डेवलपर को इसे प्रत्येक नियंत्रक पर विशेष रूप से बदलना होगा। सबसे अच्छा विकल्प मार्ग के अंदर ऑथ फ़ंक्शन जोड़ने और नियंत्रकों को निर्दिष्ट करना है। अगर आपको प्रदत्त औथ फ़ंक्शन के साथ कोई समस्या है, तो आप एक बना सकते हैं और इसे कर्नल पर निर्दिष्ट कर सकते हैं। –

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