【问题标题】:Laravel 5.3 - return redirect with a variableLaravel 5.3 - 使用变量返回重定向
【发布时间】:2016-11-23 14:25:02
【问题描述】:

我试图在重定向中发送一个变量,但它不起作用,我如何在返回同一页面时发送一个变量?

这是我的尝试:

       $player = Player::updateOrCreate(
          [
            'user_id' => Auth::user()->id,
          ],
          [
            'first_name' => $request->first_name,
            'last_name' => $request->last_name,
            'nationality' => $request->nationality,
            'birthday' => $request->birthday,
            'club' => $request->club,
          ]
        );

        return Redirect::route('admin.articles.index', compact('player'));
        //return redirect()->back()->with(['player' => $player]);

【问题讨论】:

  • 我们能看到routes.php文件吗
  • 它正在重定向但没有发送变量,因此它与路由无关
  • 你知道,你必须从会话中获取变量吗?

标签: laravel-5.3


【解决方案1】:

如果你有类似的东西:

    $player = 'player_namne';
    return back()->with(compact('player'));

在您的功能中,您必须像这样在视图(或控制器)中访问它:

@if(session('player'))
    {{ session('player') }}
@endif

【讨论】:

  • 是的,我试图避免使用会话,因为会话变量似乎在刷新页面时消失了
  • 是的,会闪现会话变量,就像重定向中包含的变量一样。如果您想在刷新页面后保留变量。您必须将它们存储在会话中(而不是闪存变量),或者将其包含在 GET - 变量中
  • 我尝试在会话中保存变量,我什至发布了一个问题here。我不确定包含在 GET -Variable 中是什么意思?
  • get variables背后的东西是什么?在 index.php?name=test&last_name=another 等网址中
【解决方案2】:

如果您在刷新页面后仍需要该值,则如下修改

$player = 'player_name';
Session::put('plName', $player);

然后当您再次需要它时,只需调用它Session::get('plName');

如果你暂时需要的话Session::flash('plName', $player);

你还需要使用声明use Illuminate\Support\Facades\Session;

【讨论】:

    猜你喜欢
    • 2016-11-10
    • 2014-04-30
    • 2018-01-30
    • 2021-06-24
    • 2017-04-12
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    相关资源
    最近更新 更多