从同一个控制器调用函数以返回带有flash消息的视图

时间:2017-02-07 00:25:04

标签: php html5 laravel laravel-5 laravel-blade

当用户在刀片视图中保存对象时,我的控制器中的函数将执行post请求。如果保存成功,我想重新加载包含更改的页面。

所以我需要再次调用index()来获取刷新的数据。另外,我想展示成功的消息。所以步骤是:

  1. index()函数执行,以便用户可以显示他的项目。
  2. 用户选择一个项目并保存
  3. save(请求$ request)被称为
  4. 一切都很好
  5. 使用flash成功消息发送参数保存函数调用index()?
  6. 我的控制器中有这个结构:

    public function index(){
       ...
       return view('agenda')->with(['agenda'=>$response]);
    }
    
    public function save(Request $request){
       ...
       // here where I need to return index function with success message
    }
    

    如何解决我的问题?

1 个答案:

答案 0 :(得分:0)

假设从索引页面调用save操作,只需重定向回来

public function save(Request $request){
    ...
    return redirect()->back()->with('message', 'Item saved');
}

如果是从其他页面调用,则重定向到索引页面。假设您的index()函数与路由/匹配:

return redirect()->to('/')->with('message', 'Item saved');

然后在索引视图中显示flash message

@if(Session::get('message'))
    {{ Session::get('message') }}
@endif

对于样式,如果您使用引导程序,则可以执行

@if(Session::get('message'))
    <div class="alert alert-success">
        {{ Session::get('message') }}
    </div>
@endif