2016-09-05 17 views
11

लैरवेल 5.3 में रीसेट ईमेल ब्लेड टेम्पलेट के पथ को कैसे अनुकूलित करें?लैरवेल 5.3 रीडाइफिन रीसेट ईमेल ब्लेड टेम्पलेट

उपयोग किए गए खाके है: vendor/laravel/framework/src/Illuminate/Notifications/resources/views/email.blade.php

मैं अपने खुद के निर्माण करने के लिए करना चाहते हैं।

इसके अलावा, कैसे में पूर्वनिर्धारित इस ईमेल के पाठ को बदलने के लिए: vendor/laravel/framework/src/Illuminate/Auth/Notifications/ResetPassword.php

public function toMail() 
{ 
    return (new MailMessage) 
     ->line([ 
      'You are receiving this email because we received a password reset request for your account.', 
      'Click the button below to reset your password:', 
     ]) 
     ->action('Reset Password', url('password/reset', $this->token)) 
     ->line('If you did not request a password reset, no further action is required.'); 
} 

उत्तर

28

आप कारीगर आदेश php artisan vendor:publish का उपयोग करना चाहिए यह अपने resources/views/vendor निर्देशिका में ब्लेड टेम्पलेट्स पैदा करेगा टेम्पलेट को बदलने के लिए। ईमेल के पाठ को बदलने के लिए आपको अपने उपयोगकर्ता मॉडल पर sendPasswordResetNotification विधि को ओवरराइड करना चाहिए। यह https://laravel.com/docs/5.3/passwords में में वर्णित किया गया है ईमेल अनुकूलन अनुभाग रीसेट करें।

आपको अपने उपयोगकर्ता मॉडल में नई विधि जोड़नी होगी।

public function sendPasswordResetNotification($token) 
{ 
    $this->notify(new ResetPasswordNotification($token)); 
} 

और इसके बजाय अधिसूचना के लिए अपनी खुद की कक्षा का उपयोग करें ResetPasswordNotification। अनुरोध lewis4u के लिए @ कदम अनुदेश द्वारा

कदम::

UPDATED

  1. एक नई अधिसूचना वर्ग बनाने के लिए, आप इस कमांड लाइन php artisan make:notification MyResetPassword उपयोग करना चाहिए। यह ऐप/अधिसूचना निर्देशिका में एक नई अधिसूचना कक्षा 'MyResetPassword' बना देगा।

  2. ऐड use App\Notifications\MyResetPassword; अपने प्रयोक्ता मॉडल

  3. करने के लिए अपने उपयोगकर्ता मॉडल के लिए नई विधि जोड़ें।

    public function sendPasswordResetNotification($token) 
    { 
        $this->notify(new MyResetPassword($token)); 
    } 
    
  4. रन php कारीगर आदेश php artisan vendor:publish --tag=laravel-notifications इस आदेश चलाने के बाद, मेल अधिसूचना टेम्पलेट्स संसाधन/विचारों/विक्रेता/सूचनाएं निर्देशिका में स्थित हो जाएगा।

  5. यदि आप चाहें तो MyResetPassword क्लास विधि toMail() संपादित करें। यह वर्णन किया गया है https://laravel.com/docs/5.3/notifications

  6. यदि आप चाहें तो अपना ईमेल ब्लेड टेम्पलेट संपादित करें। यह resources/views/vendor/notifications/email.blade.php

बोनस: Laracast वीडियो: https://laracasts.com/series/whats-new-in-laravel-5-3/episodes/9

पुनश्च: @ Garric15 सुझाव के लिए धन्यवाद के बारे में php artisan make:notification

+1

, तो आप इस कमांड लाइन 'का उपयोग करना चाहिए php artisan make: अधिसूचना MyOwnResetPassword' [अधिक यहां] (https://laracasts.com/discuss/channels/laravel/how-to-override-message-in-sendresetlinkemail-in-forgotpasswordcontroller#reply-183598) – Garric15

8

मैं एक बहुत ही उपयोगी Eugen’s answer पर विस्तृत करना चाहता था, लेकिन पर्याप्त नहीं था एक टिप्पणी छोड़ने के लिए प्रतिष्ठा।

यदि आप अपनी निर्देशिका संरचना चाहते हैं, तो आपको views/vendor/notifications/.. पर प्रकाशित ब्लेड टेम्पलेट्स का उपयोग करने की आवश्यकता नहीं है।जब आप एक नया अधिसूचना वर्ग बनाते हैं और अपने MailMessage वर्ग का निर्माण शुरू, यह एक view() विधि है कि आप डिफ़ॉल्ट विचारों ओवरराइड करने के लिए उपयोग कर सकते हैं: एक नई अधिसूचना वर्ग बनाने के लिए,

/** 
* Get the mail representation of the notification. 
* 
* @param mixed $notifiable 
* @return \Illuminate\Notifications\Messages\MailMessage 
*/ 
public function toMail($notifiable) 
{ 
    return (new MailMessage) 
     ->view('emails.password_reset'); 
     // resources/views/emails/password_reset.blade.php will be used instead. 
} 
इसके अलावा
+0

धन्यवाद! पूरी रात बर्बाद करने की कोशिश कर रहा था और यह इतना आसान था .. पीएफ .... –

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