Laravel 5.2重定向成功消息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel 5.2重定向成功消息相关的知识,希望对你有一定的参考价值。

我正试图在laravel上找到成功的消息回到我的主页。

return redirect()->back()->withSuccess('IT WORKS!');

由于某种原因,变量$ success在运行此代码后没有获得任何值。

我用来显示成功消息的代码:

@if (!empty($success))
    <h1>{{$success}}</h1>
@endif

我已将home和newsletter页面添加到routes.php中的web中间件组,如下所示:

Route::group(['middleware' => 'web'], function () {
    Route::auth();

    Route::get('/', function () {
        return view('home');
    });

    Route::post('/newsletter/subscribe','NewsletterController@subscribe');
});

有谁知道为什么这似乎不起作用?

答案

你应该从web中删除routes.php中间件。手动添加web中间件导致session and request related problems in Laravel 5.2.27 and higher

如果它没有帮助(仍然保持routes.php没有Web中间件),你可以尝试一些不同的方法:

return redirect()->back()->with('message', 'IT WORKS!');

显示消息(如果存在):

@if(session()->has('message'))
    <div class="alert alert-success">
        {{ session()->get('message') }}
    </div>
@endif
另一答案

你可以用这个:

return redirect()->back()->withSuccess('IT WORKS!');

并在您的视图中使用此:

@if(session('success'))
    <h1>{{session('success')}}</h1>
@endif
另一答案

所有这些都是正确的,但试试这个直的单线:

{{session()->has('message') ? session()->get('message') : ''}}

另一答案

一种方法是在会话中发送消息,如下所示:

控制器:

return redirect()->back()->with('success', 'IT WORKS!');

视图:

@if (session()->has('success'))
    <h1>{{ session('success') }}</h1>
@endif

其他方法是创建会话并直接将文本放在视图中:

控制器:

return redirect()->back()->with('success', true);

视图:

@if (session()->has('success'))
    <h1>IT WORKS!</h1>
@endif

你可以在这里查看完整的文档:Redirecting With Flashed Session Data

我希望这是非常有帮助的,问候。

另一答案

控制器:

return redirect()->route('subscriptions.index')->withSuccess(['Success Message here!']);

@if (session()->has('success'))
    <div class="alert alert-success">
        @if(is_array(session()->get('success')))
        <ul>
            @foreach (session()->get('success') as $message)
                <li>{{ $message }}</li>
            @endforeach
        </ul>
        @else
            {{ session()->get('success') }}
        @endif
    </div>
@endif

您始终可以将此部件另存为单独的刀片文件并轻松包含。例如:

<div class="row">
        <div class="col-md-6">
            @include('admin.system.success')
            <div class="box box-widget">
另一答案

在控制器中

return redirect()->route('company')->with('update', 'Content has been updated successfully!');

在视野中

@if (session('update'))
  <div class="alert alert-success alert-dismissable custom-success-box" style="margin: 15px;">
     <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
     <strong> {{ session('update') }} </strong>
  </div>
@endif
另一答案

您可以使用laravel MessageBag将我们自己的消息添加到现有消息中。

要使用MessageBag,您需要使用:

use IlluminateSupportMessageBag;

在控制器中:

MessageBag $message_bag

$message_bag->add('message', trans('auth.confirmation-success'));

return redirect('login')->withSuccess($message_bag);

希望它会帮助一些人。

  • 普通

以上是关于Laravel 5.2重定向成功消息的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.2 - 用户仅在成功登录重定向后登录,一旦我执行操作用户不再登录

laravel 5.2 登录后重定向到预期的网址

如何将客人重定向到登录页面,在laravel 5.2登录后重定向回来[关闭]

Laravel 5.2 如何将所有 404 错误重定向到主页

重定向进入空白页面而不重定向到路由 Laravel 5.8

Laravel 5.2 Entrust:如果他手动添加受限URL,则重定向用户