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

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

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

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

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

【问题讨论】:

    标签: php templates laravel blade


    【解决方案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(),因为它使会话保持整洁。
      猜你喜欢
      • 1970-01-01
      • 2012-12-19
      • 2013-12-17
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-21
      相关资源
      最近更新 更多