将字符串动态传递给laravel4中的视图

时间:2014-02-05 15:56:08

标签: php templates laravel blade

我是一个laravel新手,我正试图从一个控制器传递一个字符串到一个视图。据我了解,它应该是这样的:

return Redirect::route('home')->with('global','Hi!');

我正在尝试将用户重定向到“主页”,但字符串为“嗨!”出现在其他一切之前。 'home'是一个呈现'home.blade.php'视图的路线。

实际上,用户被重定向,没有错误,但是字符串“嗨!”没有出现在“主页”视图中。我想我需要'home'刀片模板上的东西来告诉laravel把字符串“嗨!”放在哪里,但是应该是什么呢?

2 个答案:

答案 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建议的那样。