【问题标题】:Passing variable from Controller to Route, and then View将变量从控制器传递到路由,然后查看
【发布时间】:2017-06-02 08:07:35
【问题描述】:

我的控制器中有 $user 变量,我想通过传递 $user 变量重定向到路由。在路线中,我所做的只是返回视图。

这就是我从控制器返回的方式:

return Redirect::route('welcome')->with('user',$user);

我的路线是这样的:

Route::get('welcome', array('as' => 'welcome', function() {
   return view('main');
}));

或者例如,如果我想返回一个布尔变量只是为了知道用户是否刚刚注册(例如,我可以向他们显示欢迎弹出窗口),我应该怎么做?

$user 变量传递给我的视图的最佳方式是什么?


我知道我可以直接使用return view('main')->with(['user' => $user]);,但这会使链接变得丑陋。

【问题讨论】:

  • 您可以将用户 ID 传递给路由。就像return Redirect::route('welcome/' . $user->id) 一样,它会产生http://website.com/welcome/1。然后从1,你可以得到用户。链接不那么难看。
  • 将变量放入会话中。

标签: laravel routes


【解决方案1】:

因为您只是尝试将数据传递到另一个视图而不通过 url 传递它。您可以使用会话。如果注册成功,请保存在这样的会话中:
session(['signedup' => true]);

然后在您的欢迎页面中,像
$isSignedUp = session('signedup');

从那里,您可以使用$isSignedUp 变量做任何事情。

【讨论】:

    【解决方案2】:

    我认为你应该试试这个:

    return Redirect::to('/welcome?user='. $user);
    

    return view('welcome',compact('user'));
    

    希望这对你有用!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 2016-03-03
      相关资源
      最近更新 更多