2016-02-20 14 views
7

लार्वेल 5.2मैं लैरावेल में पासवर्ड ब्रोकर को ओवरराइड/जोड़ कैसे करूं?

मुझे कार्यक्षमता के कुछ टुकड़ों को ओवरराइट करने/पासवर्ड रीसेट प्रक्रिया में कुछ नई सामग्री जोड़ने की आवश्यकता है। मुझे पता है कि मैं टिन से बाहर आने वाले पासवर्ड नियंत्रक का उपयोग करके Illuminate\Foundation\Auth\ResetsPasswords में कार्यक्षमता को ओवरराइट कर सकता हूं।

मुझे Illuminate\Contracts\Auth\PasswordBroker में परिवर्तन करने की भी आवश्यकता है। मेरा लक्ष्य एक प्रारंभिक पासवर्ड सेट करने के लिए आमंत्रण ईमेल होना है जो मौजूदा पासवर्ड रीसेट कार्यक्षमता का उपयोग करता है। फंक्शन sendResetLink में एकमात्र समस्या है।

यह फ़ंक्शन पासवर्ड टोकन प्राप्त करता है और रीसेट पासवर्ड ईमेल दृश्य के माध्यम से ईमेल भेजता है। मुझे अभी भी पासवर्ड रीसेट कार्यक्षमता की आवश्यकता है, लेकिन मेरे पास 'अपना पासवर्ड रीसेट' शब्द के साथ आमंत्रण ईमेल नहीं हो सकता है।

मैं यह कैसे कर सकता हूं? मुझे लगता है कि मैं ईमेल के लिए आमंत्रण दृश्य का उपयोग करने के लिए रीसेट कक्षाओं पर कार्यक्षमता को डुप्लिकेट और ट्विक कर सकता हूं, लेकिन मुझे यह पता लगाने के लिए ब्रोकर क्लास को विस्तारित करने का तरीका नहीं पता है।

उत्तर

2

मैं एक ही चीज़ के साथ संघर्ष कर रहा था। मैंने अपने कस्टम पासवर्ड ब्रोकर को एक setEmailView() विधि जोड़ा और कहा कि ऑथकंट्रोलर में रीसेटलिंक भेजने से पहले, लेकिन यह नियमित पासवर्ड रीसेट फ़ंक्शन तोड़ दिया।
तो, मैंने उन सभी को तोड़ दिया और एक बहुत ही सरल दृष्टिकोण के लिए चला गया। AuthController.php में, पासवर्ड टेम्पलेट में एक चर इंजेक्ट करें।

view()->composer('auth.emails.password', function($view) { 
    $view->with(['register'=>true]); 
}); 
Password::sendResetLink(['email'=>$data['email']], function($message) { 
    $message->subject('Registration Email'); 
}); 

फिर, टेम्पलेट प्रमाणन/ईमेल/password.blade.php

@if (isset($register)) 
    Whatever you want to say in registration Email. 
@else 
    Normal password reset Email here. 
@endif 
+0

में आप मेरा दिन बचा लिया। –

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