2017-02-10 24 views
0

私はLaravel 5.3を使用しています。私は今、私のCRMのリセットパスワードオプションに取り組んでいます。Laravel 5.3

私のCRMは多言語なので、実際にはRTLからLTRに変更する必要があります。この値はクッキーそれは "user_direction"と呼ばれています。

私は、ResetPasswordクラスを含むLaravelのデフォルトのブートストラップ認証を使用しています。

これが今持っているものです。

<?php 

namespace Illuminate\Auth\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) 
    { 
     $url  = url('password/reset',$this->token); 
     $subject = trans('global.reset_password_email_subject'); 
     $greeting = trans('global.reset_password_email_greeting'); 
     $line_01 = trans('global.reset_password_email_line_01'); 
     $action  = trans('global.reset_password_email_action'); 
     $line_02 = trans('global.reset_password_email_line_02'); 

     return (new MailMessage) 
      ->subject($subject) 
      ->greeting($greeting) 
      ->line($line_01) 
      ->action($action, $url) 
      ->line($line_02); 
    } 
} 

、これは私が持っていたいもののアイデアですが、私は右のそれを記述する方法を知らない:

public function toMail($notifiable) 
    { 
     $url  = url('password/reset',$this->token); 
     $subject = trans('global.reset_password_email_subject'); 
     $greeting = trans('global.reset_password_email_greeting'); 
     $line_01 = trans('global.reset_password_email_line_01'); 
     $action  = trans('global.reset_password_email_action'); 
     $line_02 = trans('global.reset_password_email_line_02'); 

     $view = "notifications::email"; 
     if($request->cookie('user_direction') == "rtl"): 
      $view = "notifications::email-rtl"; 
     endif; 

     return (new MailMessage) 
      ->view($view) 
      ->subject($subject) 
      ->greeting($greeting) 
      ->line($line_01) 
      ->action($action, $url) 
      ->line($line_02); 
    } 

はあなたのためにあなたに感謝助けて!

答えて

0

リセットパスワードビューを変更するには、ResetPasswords Traitの関数をオーバーライドします。

次の機能をResetPasswordControllerに追加して、ビューを変更してください。

/** 
* Display the password reset view for the given token. 
* 
* If no token is present, display the link request form. 
* 
* @param \Illuminate\Http\Request $request 
* @param string|null $token 
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View 
*/ 
public function showResetForm(Request $request, $token = null) 
{ 
    return view('auth.passwords.reset')->with(
     ['token' => $token, 'email' => $request->email] 
    ); 
} 
+0

こんにちはSaravanan Sampathkumar、それは私が何を意味するかではないですが、私は自分のパスワードをリセットするには、ユーザーにメール送信を変更したい、メールの内容が表示され、私は場合は、このビューを変更したいですRTLまたはLTRを使用するユーザー –

0

それは私のために働いたユーチューブ上のいくつかのチュートリアルを見た後、私はそれをこのように書いた:

最初私はを追加し、「クッキーを使用します。」

public function toMail($notifiable) 
{ 
    $user_language_direction = Cookie::get('user_direction'); 

    $url  = url('password/reset',$this->token); 
    $subject = trans('global.reset_password_email_subject'); 
    $greeting = trans('global.reset_password_email_greeting'); 
    $line_01 = trans('global.reset_password_email_line_01'); 
    $action  = trans('global.reset_password_email_action'); 
    $line_02 = trans('global.reset_password_email_line_02'); 

    $view  = "notifications::email"; 
    if($user_language_direction == "rtl") 
     $view = "notifications::email-rtl"; 

    return (new MailMessage) 
     ->view($view,array()) 
     ->subject($subject) 
     ->greeting($greeting) 
     ->line($line_01) 
     ->action($action, $url) 
     ->line($line_02); 
}