Я начинаю в Ларавеле. В настоящее время я изучаю эту структуру. Моей версией Laravel является 5.3.
Я подделываю свой auth, используя php artisan make:auth
Все работают нормально. Также я настроил gmail smtp в моем .env файле и mail.php в config directgory. Все отлично работают. Но я видел по умолчанию по умолчанию забытый пароль. Тема сообщения « Reset Password
. Я хочу изменить это.
Я видел какой-то блог. Я нашел блог. Я реализую это на своем сайте. Но такой же выход идет.
Я следил за этими ссылками –
https://laracasts.com/discuss/channels/general-discussion/laravel-5-password-reset-link-subject
https://laracasts.com/discuss/channels/general-discussion/reset-password-email-subject
https://laracasts.com/discuss/channels/laravel/how-to-override-message-in-sendresetlinkemail-in-forgotpasswordcontroller
Вы можете изменить свой адрес электронной почты для сброса пароля, но для этого вам потребуется дополнительная работа. Во-первых, вам нужно создать собственную реализацию уведомления ResetPassword
.
Создайте новый класс уведомлений внутри каталога app\Notifications
, ResetPassword.php
его ResetPassword.php
:
<?php namespace App\Notifications; use Illuminate\Notifications\Notification; use Illuminate\Notifications\Messages\MailMessage; class ResetPassword extends Notification { public $token; public function __construct($token) { $this->token = $token; } public function via($notifiable) { return ['mail']; } public function toMail($notifiable) { return (new MailMessage) ->subject('Your Reset Password Subject Here') ->line('You are receiving this email because we received a password reset request for your account.') ->action('Reset Password', url('password/reset', $this->token)) ->line('If you did not request a password reset, no further action is required.'); } }
Вы также можете создать шаблон уведомления с помощью команды artisan:
php artisan make:notification ResetPassword
Или вы можете просто скопировать-вставить вышеуказанный код. Как вы можете заметить, этот класс уведомлений довольно похож на стандартный Illuminate\Auth\Notifications\ResetPassword
. Фактически вы можете просто расширить его из класса ResetPassword
по умолчанию.
Единственное различие здесь, вы добавляете новый вызов метода для определения темы электронной почты:
return (new MailMessage) ->subject('Your Reset Password Subject Here')
Здесь вы можете узнать больше о Mail Notifications .
Во-вторых, в файле app\User.php
вам необходимо переопределить метод sendPasswordResetNotification()
по умолчанию, sendPasswordResetNotification()
Illuminate\Auth\Passwords\CanResetPassword
. Теперь вы должны использовать собственную реализацию ResetPassword
:
<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; use App\Notifications\ResetPassword as ResetPasswordNotification; class User extends Authenticatable { use Notifiable; ... public function sendPasswordResetNotification($token) { // Your your own implementation. $this->notify(new ResetPasswordNotification($token)); } }
И теперь ваш адрес электронной почты для сброса пароля должен быть обновлен!
Надеюсь, эта помощь!
Вы можете создать настраиваемую функцию, которая будет создавать маркер пароля сброса, как это.
$user = User::where('email', 'example@name.com' )->first(); $password_broker = app(PasswordBroker::class); //so we can have dependency injection $token = $password_broker->createToken($user); //create reset password token $password_broker->emailResetLink($user, $token, function (Message $message) { $message->subject('Custom Email title'); });//send email.
Вы можете легко изменить класс уведомления, используемый для отправки ссылки на сброс пароля пользователю. Чтобы начать работу, переопределите метод sendPasswordResetNotification
в вашей модели пользователя. В рамках этого метода вы можете отправить уведомление с использованием любого выбранного вами класса уведомлений. $token
сброса пароля $token
является первым аргументом, полученным этим методом, см. Doc for Customization
/** * Send the password reset notification. * * @param string $token * @return void */ public function sendPasswordResetNotification($token) { $this->notify(new ResetPasswordNotification($token)); }
Надеюсь это поможет!
Просто добавьте строку:
-> тема ('Новый Subjetc')
в методе toMail файла Illuminate \ Auth \ Notifications \ ResetPassword:
public function toMail($notifiable) { return (new MailMessage) ->subject('New Subjetc') ->line('You are receiving this email because we received a password reset request for your account.') ->action('Restaurar Contraseña', url(config('app.url').route('password.reset', $this->token, false))) ->line('If you did not request a password reset, no further action is required.'); }