Answers:
尝试
return Redirect::back()->withErrors(['msg', 'The Message']);
然后在您的视图中调用此
@if($errors->any())
<h4>{{$errors->first()}}</h4>
@endif
return Redirect::back()->with('msg', 'The Message');
如何在此处获取“ msg”呢?
Session::has('msg')
Session::has('msg')
,并且“ msg”不存在。
withErrors('some error')
-因此需要是字符串而不是数组。
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
return redirect()->back()->with('success', 'your message here');
在Laravel 5.4中,以下对我有用:
return back()->withErrors(['field_name' => ['Your custom message here.']]);
withErrors()
答案中方法的参数是一个包含两个元素的数组:['msg', 'The Message']
。有关可接受的参数,请参见api:laravel.com/api/4.2/Illuminate/Http/…–
withErrors()
方法的参数是一个数组,其中一个元素是一key => value
对,其中值是一个数组。5.4 API:laravel.com/api/5.4/Illuminate/Http/…–
只需设置即显消息并重定向到控制器功能即可。
session()->flash('msg', 'Successfully done the operation.');
return redirect()->back();
然后,您可以在刀片视图文件中获取该消息。
{!! Session::has('msg') ? Session::get("msg") : '' !!}
{!! Session::get("msg", '') !!}
应该足够了。get()
已经检查密钥是否存在,否则返回默认值。
我不再为laravel编写自己的代码,而是使用Laracasts软件包为您处理所有事务。它真的很容易使用,并且可以保持代码干净。甚至有一个涵盖如何使用它的拉播。所有您需要做的:
通过Composer拉入包装。
"require": {
"laracasts/flash": "~1.0"
}
将服务提供商包含在app / config / app.php中。
'providers' => [
'Laracasts\Flash\FlashServiceProvider'
];
在底部的同一文件中添加外观别名:
'aliases' => [
'Flash' => 'Laracasts\Flash\Flash'
];
将HTML拉入视图:
@include('flash::message')
消息右侧有一个关闭按钮。这依赖于jQuery,因此请确保在引导程序之前添加了jQuery。
可选更改:
如果您不使用引导程序,或者想跳过包含Flash消息并自己编写代码,请执行以下操作:
@if (Session::has('flash_notification.message'))
<div class="{{ Session::get('flash_notification.level') }}">
{{ Session::get('flash_notification.message') }}
</div>
@endif
如果您想查看引入的HTML @include('flash::message')
,可以在中找到它vendor/laracasts/flash/src/views/message.blade.php
。
如果需要修改局部变量,请执行以下操作:
php artisan view:publish laracasts/flash
这两个软件包视图现在将位于“ app / views / packages / laracasts / flash /”目录中。
对于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
在尝试使用Laravel 5.6。*中提供的一些答案时,很明显,我将在此处发布一些改进,以使那些无法使用其余答案找到解决方案的人更轻松。
第1步:转到您的控制器文件,并将其添加到课程之前:
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.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
恩约
当我尝试重定向为时收到此消息:
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();
s
,并use
在需要的地方添加。除了它-应该工作。