Laravel Redirect返回()消息

laravel laravel-5 laravel-4

305180 观看

14回复

1043 作者的声誉

当发生致命错误时,我正尝试使用消息重定向到上一页。

App::fatal(function($exception)
{
    return Redirect::back()->with('msg', 'The Message');
}

在视图中尝试访问msg

Sessions::get('msg')

但没有任何东西被渲染,我在这里做错了什么?

作者: Mudit Tuli 的来源 发布者: 2013 年 11 月 7 日

回应 (14)


189

5597 作者的声誉

决定

尝试

return Redirect::back()->withErrors(['msg', 'The Message']);

在你的视图中调用它

@if($errors->any())
<h4>{{$errors->first()}}</h4>
@endif
作者: giannis christofakis 发布者: 07.11.2013 02:55

56

6687 作者的声誉

替代方法是

调节器

Session::flash('message', "Special message goes here");
return Redirect::back();

视图

@if (Session::has('message'))
   <div class="alert alert-info">{{ Session::get('message') }}</div>
@endif
作者: Rick 发布者: 21.05.2014 09:50

13

1341 作者的声誉

您有错误(拼写错误):

Sessions::get('msg')// an extra 's' on end

应该:

Session::get('msg')

我想,现在它应该工作,它对我有用。

作者: bumerang 发布者: 13.11.2014 10:33

4

3812 作者的声誉

我自己停止写这个laravel,支持Laracasts包,为你处理它。它非常易于使用并保持代码清洁。甚至有一个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

如果您想查看引入的HTML @include('flash::message'),可以在中找到它vendor/laracasts/flash/src/views/message.blade.php

如果你需要修改部分,请执行以下操作:

php artisan view:publish laracasts/flash

这两个包视图现在位于`app / views / packages / laracasts / flash /'目录中。

作者: DutGRIFF 发布者: 10.12.2014 04:21

1

11 作者的声誉

我面临同样的问题,这很有效。

调节器

return Redirect::back()->withInput()->withErrors(array('user_name' => $message));

视图

<div>{{{ $errors->first('user_name') }}}</div>
作者: A. Mitani 发布者: 16.12.2015 05:47

1

382 作者的声誉

对于Laravel 3

只是对@giannis christofakis的回答; 对于使用Laravel 3替换的任何人

return Redirect::back()->withErrors(['msg', 'The Message']);

有:

return Redirect::back()->with_errors(['msg', 'The Message']);
作者: Dev1997 发布者: 08.02.2016 05:32

97

5760 作者的声誉

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
作者: Ketan Akbari 发布者: 19.04.2016 05:36

7

1995 作者的声誉

只需设置flash消息并从控制器功能重定向到后退。

    session()->flash('msg', 'Successfully done the operation.');
    return redirect()->back();

然后,您可以在视图刀片文件中获取消息。

   {!! Session::has('msg') ? Session::get("msg") : '' !!}
作者: Majbah Habib 发布者: 25.07.2016 08:58

15

6786 作者的声誉

在Laravel 5.4中,以下内容对我有用:

return back()->withErrors(['field_name' => ['Your custom message here.']]);
作者: haakym 发布者: 03.05.2017 01:06

0

11009 作者的声誉

当我尝试重定向时收到此消息:

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();
作者: manix 发布者: 22.05.2017 07:05

7

217 作者的声誉

在Laravel 5.5中

return back()->withErrors($arrayWithErrors);

在使用Blade的视图中:

@if($errors->has())
    <ul>
    @foreach ($errors->all() as $error)
        <li>{{ $error }}</li>
    @endforeach
    </ul>
@endif
作者: Sergio 发布者: 25.05.2018 08:58

1

508 作者的声誉

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

作者: The Bumpaster 发布者: 04.08.2018 10:55

1

547 作者的声誉

对于laravel 5.6。*

在Laravel 5.6。*中尝试一些提供的答案时,很明显我会在这里发布一些改进,以便为那些找不到其他答案的解决方案的人提供便利。

步骤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。*

作者: Akintunde 发布者: 11.03.2019 06:38

0

199 作者的声誉

适用于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
作者: Andrew Savetchuk 发布者: 01.08.2019 11:11
32x32