在Laravel 5中,如何使用href自定义会话flash消息

时间:2016-05-18 06:37:32

标签: php session laravel-5.1

如果用户未通过电子邮件链接验证其帐户,我在我的登录刀片中显示请在登录前验证您的电子邮件

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 重新发送部分到路由。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

使用此代码

在route.php中添加路径

Route::get('/resend_mail', 'VerificationMailController@resend'); //replace with your desired location

在VerificationMailController.php

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');
}

答案 1 :(得分: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