2016-12-30 26 views
5

ile posta şablonunu şifresini sıfırlamak replace ben php artisan make:auth, kimlik doğrulama sistemi için laravel komutu yaptıysa uygulamam için kimlik doğrulama sistemi yapılmış ve hemen hemen her şey çalışıyor.özel şablon laravel 5.3

Artık şifremi unuttum şifresini kullandığımda ve bana posta kimliğimin bir belirtecini gönderdiğinde, şablonun laravel ve düzenlemek veya ommit etmek isteyebileceğim başka şeyler içerdiğini görüyorum, tam olarak, özel şablonumu istiyorum orada kullanılmak üzere.

Denetleyicilere ve kaynak dosyalarına baktım ancak şablonu veya postada html'yi görüntüleyen kodu bulamıyorum.

Nasıl yaparım?

Nasıl değiştiririm?

Bu, laravel'den postaya gelen varsayılan şablon. enter image description here

cevap

4

terminalde aşağıdaki komutu çalıştırıp, iki e-posta şablonları kaynaklar/satıcı/bildirimler klasörüne kopyalanacaktır. Daha sonra şablonları değiştirebilirsiniz.

php artisan vendor:publish --tag=laravel-notifications 

Sen laravel Docs yılında Notifications hakkında daha fazla bilgi bulabilirsiniz.

+0

e-posta şablonu iç kaynaklar/görüntüleme/satıcı/bildirimler klasör olacaktır. – KCP

+0

Bence tam cevap https://stackoverflow.com/a/41401524/2144424 – jpussacq

7

Sadece bir kafaları yukarı: Eğer bildirim hatları vb You are receiving this... gibi, değiştirmek istiyorsanız önceki cevabı ek olarak, aşağıda bir adım-adım kılavuzdur ek adımlar vardır.

User modelinde override the defaultsendPasswordResetNotification yöntemini kullanmanız gerekir.

Neden? Çünkü çizgiler Illuminate\Auth\Notifications\ResetPassword.php'dan çekilmiştir. Çekirdeği değiştirmek, Laravel'in güncellemesi sırasında değişikliklerin kaybolacağı anlamına gelir.

Bunu yapmak için, User modelinize aşağıdakileri ekleyin.

use App\Notifications\PasswordReset; // Or the location that you store your notifications (this is default). 

/** 
* Send the password reset notification. 
* 
* @param string $token 
* @return void 
*/ 
public function sendPasswordResetNotification($token) 
{ 
    $this->notify(new PasswordReset($token)); 
} 

Son olarak, create that notification:

/** 
* The password reset token. 
* 
* @var string 
*/ 
public $token; 

/** 
* Create a new notification instance. 
* 
* @return void 
*/ 
public function __construct($token) 
{ 
    $this->token = $token; 
} 

/** 
* Get the notification's delivery channels. 
* 
* @param mixed $notifiable 
* @return array 
*/ 
public function via($notifiable) 
{ 
    return ['mail']; 
} 

/** 
* Build the mail representation of the notification. 
* 
* @param mixed $notifiable 
* @return \Illuminate\Notifications\Messages\MailMessage 
*/ 
public function toMail($notifiable) 
{ 
    return (new MailMessage) 
     ->line('You are receiving this email because we received a password reset request for your account.') // Here are the lines you can safely override 
     ->action('Reset Password', url('password/reset', $this->token)) 
     ->line('If you did not request a password reset, no further action is required.'); 
} 
+1

Teşekkürler. Bu tam bir cevap. E-postanın konusunu değiştirmek için aşağıdaki satırı -> konu ('özel konunuz') eklemeliydim. Çok teşekkürler. – jpussacq

0

Ayrıca kendi posta şablonu oluşturma ve Sıfırlama kullanarak kendiniz bağlantı göndererek bunu başarabilirsiniz:

php artisan make:notification PasswordReset 

Ve bu Bildirimin içeriğinin örneği php mail() da laravel Mail Facade ama önce

belirteç reset oluşturmanız gerekecektir

1) use Illuminate\Contracts\Auth\PasswordBroker;

$user = User::where('email', $email)->first(); 
       if ($user) { 
        //so we can have dependency 
        $password_broker = app(PasswordBroker::class); 
        //create reset password token 
        $token = $password_broker->createToken($user); 

        DB::table('password_resets')->insert(['email' => $user->email, 'token' => $token, 'created_at' => new Carbon]); 

//Send the reset token with your own template 
//It can be like $link = url('/').'/password/reset/'.$token; 

       }