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

Posted

技术标签:

【中文标题】将字符串动态传递给 laravel4 中的视图【英文标题】:Passing a string dynamically to a view in laravel4 【发布时间】:2014-03-02 03:57:39 【问题描述】:

我是 laravel 新手,我正在尝试从控制器将字符串传递给视图。据我了解,应该是这样的:

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

我正在尝试将用户重定向到“家”,但有字符串“嗨!”出现在一切之前。 'home' 是渲染视图 'home.blade.php' 的路由。

事实上,用户被重定向,没有错误,但字符串“Hi!”不会出现在“主页”视图中。我想我需要在 'home' 刀片模板上添加一些东西来告诉 laravel 将字符串“Hi!”放在哪里,但那应该是什么?

【问题讨论】:

【参考方案1】:

如果不了解更多关于您的代码的信息,很难确切说明该做什么,但您应该知道Redirect::route()->with()View::make()->with() 不同。 View::make()->with('var', 'value') 将一个名为var 的变量传递给视图,而Redirect::route()->with('var', 'value') 设置一个会话闪存变量。

为了访问 home.blade.php 中的“全局”,您需要在会话中找到它:

 Session::get('global') 

顺便说一句,要获得一个实际的“全局”视图变量,您需要View::share('var', 'value'),但这不适用于重定向,仅适用于当前请求。

【讨论】:

【参考方案2】:

我想你要找的是

Session::flash('global', 'Hi!');

“flash()”方法将数据放入会话中,但只针对一个请求。之后它被删除,在这种情况下,这似乎是你想要的。在文档中查看更多信息! http://laravel.com/docs/session#flash-data

一旦您将该数据刷新到会话中,您就可以像您已经在做的那样return Redirect::view('home'),并在主页视图上使用 Session::get('global') ,就像 alexrussell 建议的那样。

【讨论】:

非常感谢,只需将 session::get('global') 放在模板上就可以了,但我会更多地研究这个 flash 方法。 是的,这肯定也行!我想我只是更喜欢使用flash(),因为它使会话保持整洁。

以上是关于将字符串动态传递给 laravel4 中的视图的主要内容,如果未能解决你的问题,请参考以下文章

将字符串传递给模态视图

如何将字符串数组动态传递给Java中的SQL“IN”子句? [复制]

如何将字符串中的加号从视图传递给控制器​​?

如何将字符串变量传递给动态sql中的where子句

Urls.py 无法将#(pound) 字符传递给 Django 中的视图,

将视图(php文件)作为字符串传递给yii 2中registerJS中的变量js