我是一个laravel新手,我正试图从一个控制器传递一个字符串到一个视图。据我了解,它应该是这样的:
return Redirect::route('home')->with('global','Hi!');
我正在尝试将用户重定向到“主页”,但字符串为“嗨!”出现在其他一切之前。 'home'是一个呈现'home.blade.php'视图的路线。
实际上,用户被重定向,没有错误,但是字符串“嗨!”没有出现在“主页”视图中。我想我需要'home'刀片模板上的东西来告诉laravel把字符串“嗨!”放在哪里,但是应该是什么呢?
答案 0 :(得分:3)
在不了解您的代码的情况下,很难确切地说要做什么,但您应该知道Redirect::route()->with()
与View::make()->with()
不同。 View::make()->with('var', 'value')
将名为var
的变量传递给视图,而Redirect::route()->with('var', 'value')
设置会话Flash变量。
要在home.blade.php中访问“global”,您需要在会话中找到它:
{{{ Session::get('global') }}}
顺便说一下,要获得一个实际的“全局”视图变量,您需要View::share('var', 'value')
,但这不适用于重定向,仅适用于当前请求。
答案 1 :(得分:0)
我认为您正在寻找的是
Session::flash('global', 'Hi!');
“flash()”方法将数据放入会话中,但仅针对一个请求。之后它被删除了,在这种情况下看起来像你想要的。在文档中查看更多相关信息! http://laravel.com/docs/session#flash-data
将这些数据刷新到会话后,您可以{i}就像您已经在做的那样,并且在主视图中使用return Redirect::view('home')
就像alexrussell建议的那样。