Laravel Redirect返回()消息

Mud*_*uli 129 laravel laravel-4 laravel-5

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

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

在视图中尝试访问msg

Sessions::get('msg')
Run Code Online (Sandbox Code Playgroud)

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

gia*_*kis 204

尝试

return Redirect::back()->withErrors(['msg', 'The Message']);
Run Code Online (Sandbox Code Playgroud)

在你的视图中调用它

@if($errors->any())
<h4>{{$errors->first()}}</h4>
@endif
Run Code Online (Sandbox Code Playgroud)

  • **对于5.4**,`withErrors('some error')` - 所以需要是一个字符串而不是数组. (6认同)
  • 这个工作,多酷.但是为什么不工作`返回Redirect :: back() - > with('msg','The Message');`如何获取"msg"? (4认同)
  • 是的,检查了“Session::has('msg')”,并且“msg”不存在。 (2认同)
  • @giannischristofakis看起来确实如此.我不知道九月份那个寒冷多雾的早晨我在抽烟. (2认同)

Ket*_*ari 113

Laravel 5

调节器

 return redirect()->back()->with('success', ['your message,here']);   
Run Code Online (Sandbox Code Playgroud)

刀:

@if (\Session::has('success'))
    <div class="alert alert-success">
        <ul>
            <li>{!! \Session::get('success') !!}</li>
        </ul>
    </div>
@endif
Run Code Online (Sandbox Code Playgroud)

如果它给出错误:数组到字符串转换,那么只需在控制器中进行小修复

 return redirect()->back()->with('success', ['your message,here']);   
Run Code Online (Sandbox Code Playgroud)

  • 数组到字符串转换:( (7认同)

Ric*_*ick 59

替代方法是

调节器

Session::flash('message', "Special message goes here");
return Redirect::back();
Run Code Online (Sandbox Code Playgroud)

视图

@if (Session::has('message'))
   <div class="alert alert-info">{{ Session::get('message') }}</div>
@endif
Run Code Online (Sandbox Code Playgroud)


haa*_*kym 18

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

return back()->withErrors(['field_name' => ['Your custom message here.']]);
Run Code Online (Sandbox Code Playgroud)


bum*_*ang 13

您有错误(拼写错误):

Sessions::get('msg')// an extra 's' on end
Run Code Online (Sandbox Code Playgroud)

应该:

Session::get('msg')
Run Code Online (Sandbox Code Playgroud)

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


小智 8

在 Laravel 5.8 中,您可以执行以下操作:

return redirect()->back()->withErrors(['name' => 'The name is required']);
Run Code Online (Sandbox Code Playgroud)

并在刀片中:

@error('name')
<p>{{ $message }}</p>
@enderror
Run Code Online (Sandbox Code Playgroud)


Maj*_*bib 7

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

    session()->flash('msg', 'Successfully done the operation.');
    return redirect()->back();
Run Code Online (Sandbox Code Playgroud)

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

   {!! Session::has('msg') ? Session::get("msg") : '' !!}
Run Code Online (Sandbox Code Playgroud)

  • 我认为`{!! Session::get("msg", '') !!}` 应该足够了。`get()` 已经检查 _key_ 是否存在,否则返回默认值。 (2认同)

Ser*_*gio 7

在Laravel 5.5中:

return back()->withErrors($arrayWithErrors);
Run Code Online (Sandbox Code Playgroud)

在使用Blade的视图中:

@if($errors->has())
    <ul>
    @foreach ($errors->all() as $error)
        <li>{{ $error }}</li>
    @endforeach
    </ul>
@endif
Run Code Online (Sandbox Code Playgroud)

  • $errors-&gt;has() 失败,但 $errors-&gt;any() 运行良好 (2认同)

Raj*_*jib 6

#Laravel-9 在刀片内部,此重定向返回操作启动

   return redirect()->back()->with('message', "The Message");            
Run Code Online (Sandbox Code Playgroud)

刀片里面这个形状的地方,经过上面的动作就会返回

                @if(session()->has('message'))
                <p class="alert alert-success"> {{ session()->get('message') }}</p>
                @endif
Run Code Online (Sandbox Code Playgroud)


And*_*huk 5

对于 Laravel 5.5+

控制器:

return redirect()->back()->with('success', 'your message here');
Run Code Online (Sandbox Code Playgroud)

刀刃:

@if (Session::has('success'))
    <div class="alert alert-success">
        <ul>
            <li>{{ Session::get('success') }}</li>
        </ul>
    </div>
@endif
Run Code Online (Sandbox Code Playgroud)


小智 5

在控制器中

例如

return redirect('login')->with('message',$message);
Run Code Online (Sandbox Code Playgroud)

在刀片文件中 消息将存储在会话中而不是变量中。

例如

@if(session('message'))
{{ session('message') }}
@endif
Run Code Online (Sandbox Code Playgroud)


小智 5

我知道这是一篇旧帖子,但这个答案可能会对那里的人有所帮助。

在 Laravel 8.x 中,这对我有用:您可以将错误返回到上一页或另一个页面。

return Redirect::back()->withErrors(['password' => ['Invalid Username or Password']]);
Run Code Online (Sandbox Code Playgroud)

这也将起作用:

return view('auth.login')->withErrors(['username' => ['Invalid Username or Password']]);
Run Code Online (Sandbox Code Playgroud)

但是,请确保您返回的页面/视图具有与 withErrors 方法中传递的第一个参数(在本例中为用户名或密码)相对应的字段名称,并且视图中的 @error 指令引用相同的字段像这样

@error('password') //or @error('username')
 <span class="invalid-feedback" role="alert">
   <strong>{{ $message }}</strong>
 </span>
@enderror 
Run Code Online (Sandbox Code Playgroud)

例如

希望这对某人有帮助。干杯。