【问题标题】:How to send data to the view using redirect with Laravel without using Session?如何在不使用 Session 的情况下使用 Laravel 重定向将数据发送到视图?
【发布时间】:2018-08-16 06:32:40
【问题描述】:

我想将数据从控制器发送到我的视图,而不使用会话来获取视图中的数据。

this question 中,他们建议使用return redirect('home')->with(['data' => $value]);,但我认为我必须使用Session::get('data')

我知道这可以通过使用 return view('myView')->with('data', 'value') 来解决,但我希望在导航到主页时将 URL 更改为 www.myurl.com/home,但我无法执行此操作view('myView')->with('data', 'value')

谢谢!

【问题讨论】:

    标签: php redirect laravel-5.5


    【解决方案1】:

    没有别的办法,你真的需要使用Session::get。但是,我们可以解决它,但它很混乱。

    // some controller function
    return redirect('home')->with(['data' => $value]);
    

    现在在您的 home 控制器函数中,执行以下操作:

    SomeController@home
    ...
    $data = [];
    
    // if you need to pass other data to view, put it in data[]
    // e.g., $data['username'] = Auth::user()->username;
    
    if (Session::has('data')) {
        $data['data'] = Session::get('data');
    }
    
    return view('myView', compact($data));
    

    在那里,在您看来,您可以检查是否设置了data

    <!-- myView.blade.php -->
    <span>{{ isset($data) ? $data : '' }}</span>
    

    对我来说,这与从视图中访问 Session 相同,因为如果你这样做了,这就是你的视图的样子。

    <!-- myView.blade.php -->
    <span>{{ Session::has('data') ? Session::get('data') : '' }}</span>
    

    您也可以使用session() 全局帮助器代替Session 外观。

    【讨论】:

      猜你喜欢
      • 2014-10-13
      • 1970-01-01
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 2017-12-21
      • 1970-01-01
      相关资源
      最近更新 更多