Laravel 3 - 跨多个视图传递变量

Posted

技术标签:

【中文标题】Laravel 3 - 跨多个视图传递变量【英文标题】:Laravel 3 - Passing variables across multiple views 【发布时间】:2013-06-13 13:20:02 【问题描述】:

我有两种不同观点的两种形式。我想将表单输入发布到第二个视图,然后在发布第二个表单后返回到第一个表单。

我已经使用如下所示的路线设置了一个测试:

Route::get('/test1', function() 
    return View::make('test1');
);

Route::post('/test2', function() 
    $flash = Input::get();
    return View::make('test2')->with('flash', $flash);
);

Route::post('/test1', function() 
    return View::make('test1')->with('flash', $flash);
);

我只能通过$flash 一次。我误解了为什么我不能再次通过它。我觉得我必须重新提取它?

【问题讨论】:

【参考方案1】:

您需要在/test2 中添加一个表单字段并重新提交$flash 数据,以便通过POST 将其传递给/test1。这是一个新请求,否则应用程序将丢失 $flash var。

另一种方法是将 $flash 存储在与 Session::put('flash', $flash); 的会话中,并在下一个请求中访问它。

【讨论】:

【参考方案2】:

最好的方法是将数据存储在会话中。它将在多个请求中可用。使用 Input::flash() 只能在下一个请求之前使用。请参阅 Laravel 文档以获取 Input::flash() 和 Session

【讨论】:

以上是关于Laravel 3 - 跨多个视图传递变量的主要内容,如果未能解决你的问题,请参考以下文章

如何使用laravel中的控制器将多个变量传递给视图

Laravel - 传递多个变量以查看

跨多个子视图传递 UITouch * 的正确方法是啥?

Laravel教程 三:视图变量传递和Blade

尝试将变量传递给视图时 Laravel 5.1 错误

Laravel 5.2 - 如何将变量(数组和整数)从视图传递到控制器?