当发生致命错误时,我正尝试使用消息重定向到上一页。
App::fatal(function($exception)
{
return Redirect::back()->with('msg', 'The Message');
}
在视图中尝试访问该消息
Sessions::get('msg')
但没有任何东西被渲染,我在这里做错了什么?
尝试
return Redirect::back()->withErrors(['msg', 'The Message']);
在你的视图中调用它
@if($errors->any())
<h4>{{$errors->first()}}</h4>
@endif
对于Laravel 3
只是对@giannis christofakis的回答;对于使用Laravel 3替换的任何人
return Redirect::back()->withErrors(['msg', 'The Message']);
有:
return Redirect::back()->with_errors(['msg', 'The Message']);
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);
}
刀片模板
@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
Enyoj
在Laravel 5.6。*中尝试一些提供的答案时,很明显我会在这里发布一些改进,以便为那些无法找到其他答案的解决方案的人提供便利。
STEP 1:转到您的Controller文件并在课前添加:
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
然后测试并感谢我。
这应该适用于laravel 5.6。*和5.7。*
适用于Laravel 5.5+
控制器:
return redirect()->back()->with('success', 'your message here');
刀:
@if (Session::has('success'))
<div class="alert alert-success">
<ul>
<li>{{ Session::get('success') }}</li>
</ul>
</div>
@endif
在控制器中
例如
return redirect('login')->with('message',$message);
在刀片文件中消息将存储在会话中而不是变量中。
例如
@if(session('message'))
{{ session('message') }}
@endif
当我尝试重定向时收到此消息:
public function validateLogin(LoginRequest $request){
//
return redirect()->route('sesion.iniciar')
->withErrors($request)
->withInput();
当正确的方式是:
public function validateLogin(LoginRequest $request){
//
return redirect()->route('sesion.iniciar')
->withErrors($request->messages())
->withInput();
Laravel 5.8
调节器
return back()->with('error', 'Incorrect username or password.');
刀
@if (Session::has('error'))
<div class="alert alert-warning" role="alert">
{{Session::get('error')}}
</div>
@endif
Laravel 5
调节器
return redirect()->back()->with('success', ['your message,here']);
刀:
@if (\Session::has('success'))
<div class="alert alert-success">
<ul>
<li>{!! \Session::get('success') !!}</li>
</ul>
</div>
@endif
替代方法是
调节器
Session::flash('message', "Special message goes here");
return Redirect::back();
视图
@if (Session::has('message'))
<div class="alert alert-info">{{ Session::get('message') }}</div>
@endif
在Laravel 5.4中,以下内容对我有用:
return back()->withErrors(['field_name' => ['Your custom message here.']]);
您有错误(拼写错误):
Sessions::get('msg')// an extra 's' on end
应该:
Session::get('msg')
我想,现在它应该工作,它对我有用。
只需设置flash消息并从控制器功能重定向回。
session()->flash('msg', 'Successfully done the operation.');
return redirect()->back();
然后,您可以在视图刀片文件中获取消息。
{!! Session::has('msg') ? Session::get("msg") : '' !!}
在Laravel 5.5中:
return back()->withErrors($arrayWithErrors);
在使用Blade的视图中:
@if($errors->has())
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
@endif
我自己不再为了laravel写这篇文章而赞成为你处理这一切的Laracasts package。它非常易于使用并保持代码清洁。甚至有一个laracast涵盖了如何使用它。所有你需要做的:
通过Composer拉入包。
"require": {
"laracasts/flash": "~1.0"
}
在app / config / app.php中包含服务提供商。
'providers' => [
'Laracasts\Flash\FlashServiceProvider'
];
在底部的同一个文件中添加一个外观别名:
'aliases' => [
'Flash' => 'Laracasts\Flash\Flash'
];
将HTML拉入视图:
@include('flash::message')
消息右侧有一个关闭按钮。这依赖于jQuery,因此请确保在引导之前添加。
可选更改:
如果您没有使用引导程序或想要跳过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
这两个包视图现在位于`app / views / packages / laracasts / flash /'目录中。
我面临同样的问题,这很有效。
调节器
return Redirect::back()->withInput()->withErrors(array('user_name' => $message));
视图
<div>{{{ $errors->first('user_name') }}}</div>