在发生致命错误时,我正在尝试带有消息地重定向回上一页。
App::fatal(function($exception)
{
return Redirect::back()->with('msg', 'The Message');
}
在尝试访问消息时
Sessions::get('msg')
但是什么都没有被渲染出来,我在这里做错了什么吗?
#Laravel-9 在 Blade 模板中发起重定向 Back 时的代码位置
return redirect()->back()->with('message', "The Message");
在这个形式内部,将在上述操作后返回
@if(session()->has('message'))
<p class="alert alert-success"> {{ session()->get('message') }}</p>
@endif
return redirect('login')->with('message',$message);
在 Blade 文件中 该消息将存储在会话中,而不是变量中。
例如:
@if(session('message'))
{{ session('message') }}
@endif
这对我来说可行,Laravel版本为^7.0。
在控制器上实现:
return back()->with('success', 'Succesfully Added');
关于 Blade 文件
@if (session('success'))
<div class="alert alert-success">
{!! session('success') !!}
</div>
@endif
更多文档请查看Laravel官方文档
通过Composer引入该软件包。
"require": {
"laracasts/flash": "~1.0"
}
在app/config/app.php中包含服务提供者。
'providers' => [
'Laracasts\Flash\FlashServiceProvider'
];
'aliases' => [
'Flash' => 'Laracasts\Flash\Flash'
];
@include('flash::message')
消息右侧有一个关闭按钮。这需要使用jQuery,因此请确保在引入Bootstrap之前添加了jQuery。
可选更改:
如果您不使用Bootstrap或想跳过包含Flash消息并自己编写代码:
@if (Session::has('flash_notification.message'))
<div class="{{ Session::get('flash_notification.level') }}">
{{ Session::get('flash_notification.message') }}
</div>
@endif
如果您想查看@include('flash::message')
引入的HTML代码,您可以在vendor/laracasts/flash/src/views/message.blade.php
中找到它。
如果您需要修改局部内容,请执行以下操作:
php artisan view:publish laracasts/flash
以下是100%解决方案
*上述提到的解决方案对我无效,但这个解决方案在laravel 5.8中适用:
$status = 'Successfully Done';
return back()->with(['status' => $status]);
并接收它:
@if(session()->has('status'))
<p class="alert alert-success">{{session('status')}}</p>
@endif
@if(Session::has('success'))
<div class="alert alert-success" id="alert">
<strong>Success:</strong> {{Session::get('success')}}
</div>
@elseif(session('error'))
<div class="alert alert-danger" id="alert">
<strong>Error:</strong>{{Session::get('error')}}
</div>
@endif
在控制器中处理成功的情况
return redirect()->route('homee')->with('success','Successfully Log in ');
错误信息
return back()->with('error',"You are not able to access");
在尝试一些 Laravel 5.6.* 中提供的答案时,很明显已经有了一些改进,我将在这里发布这些改进,以便那些在其他答案中找不到解决方案的人更容易地解决问题。
在您的控制器文件中,在类之前添加以下内容:
use Illuminate\Support\Facades\Redirect;
步骤2:将此代码添加到您想要返回重定向的位置。
return Redirect()->back()->with(['message' => 'The Message']);
步骤3:前往您的刀片文件并进行如下编辑
@if (Session::has('message'))
<div class="alert alert-error>{{Session::get('message')}}</div>
@endif
我遇到了同样的问题,这个方法可以解决。
控制器
return Redirect::back()->withInput()->withErrors(array('user_name' => $message));
查看
<div>{{{ $errors->first('user_name') }}}</div>
laravl 8
Route::post('/user/profile', function () {
// Update the user's profile...
return redirect('/dashboard')->with('status', 'Profile updated!');
});
Blade语法
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
Laravel 5.6.*
控制器
if(true) {
$msg = [
'message' => 'Some Message!',
];
return redirect()->route('home')->with($msg);
} else {
$msg = [
'error' => 'Some error!',
];
return redirect()->route('welcome')->with($msg);
}
Blade模板
@if (Session::has('message'))
<div class="alert alert-success" role="alert">
{{Session::get('message')}}
</div>
@elseif (Session::has('error'))
<div class="alert alert-warning" role="alert">
{{Session::get('error')}}
</div>
@endif
享受
s
,并在需要的地方添加use
。除此之外 - 应该可以工作。 - Yevgeniy Afanasyev