2016-05-18 11 views
0

私はを表示しています。ログイン時にユーザーが電子メールでアカウントを確認しなかった場合は、メールを確認してください。Laravel 5で、セッションのフラッシュメッセージをhrefでカスタマイズする方法

if ($user->is_verified == 0) { 
    $request->session()->flash("failed", "Please verify your email before login); 
    return redirect('/login'); 
} 

そして、私のブレードに私が

@if (Session::has('failed')) 
    <div class="alert alert-danger"> 
    {{Session::get('failed')}}.<br><br> 
    </div>    
@endif 

それをキャッチするために、次のように行いますが、今、私はこのメッセージログインする前にあなたの電子メールを確認したり、確認メールを再送信して再送一部にしてくださいを追加する必要があります経路へのhrefと。何か案は ?

答えて

1

使用route.phpでこのコード

追加ルートVerificationMailController.phpで

Route::get('/resend_mail', '[email protected]'); //replace with your desired location 

public function resend(){ 
    //do your resend verification mail code 
} 

あなたは再送メッセージを表示するこのコードを使用したより

if ($user->is_verified == 0) { 
$resendurl = route('resend_mail'); //here replace the route of your email verification send route. 
$msg = 'Please verify your email before login or <a href="'.$resendurl.'">resend</a> the verification email'; 
    $request->session()->flash("failed", $msg); 
    return redirect('/login'); 
} 
+0

がいやいや..私はすでにそれをしたいWHTとして、今ではこのように見せています。誤ってユーザーが確認メールを削除した場合、彼は自分のアカウントにログインすることはできません。時々彼は確認することを忘れる。だからそのメッセージで私はそれを再送する必要があります –

+0

そして、その再送信はそのユーザー自身によって行われるべきです!!!!!! –

+0

更新されたコード –

0

最後に私はこのコードを少し変更しました。

ブレードのコードはこのように変更する必要があります。そうでなければ、html構文を受け入れず、単にプランhtmlを表示するからです。これはlaravel escape htmlと呼ばれます。

@if (Session::has('failed')) 
    <div class="alert alert-danger"> 
    {!!Session::get('failed')!!}.<br><br> 
    </div> 
@endif 

Md. Sahadat Hossain回答が正しいです。しかし、私の問題を訴えて、私はこのようなコードを変更します。

if ($user->is_verified == 0) {      
    $msg = 'Please verify your email before login or <a href="'. url("/resend_email").'">resend</a> the verification email'; 
    $request->session()->flash("failed", $msg); 
    return redirect('/login'); 
} 

と私は

enter image description here

関連する問題