Laravel在视图之间传递数据

时间:2018-03-30 23:58:06

标签: laravel laravel-5

我有一个视图,其中包含一些我希望传递给新页面的变量,并使用它们预填充表单。

$data->title
$data->catid
$data->category
$data->groupName

“vanila方式我可以创建一个类似something.com?var1=something&var2=something等的网址。

但我怎么能在laravel中做到这一点?

2 个答案:

答案 0 :(得分:0)

考虑您可以重定向到包含GET参数的页面。例如,“something.com?var1=something&var2=something”,您实际上可以将此数据传递到Laravel中的另一个视图。我们假设您要将var1var2变量传递给另一个视图。

您将用户重定向到包含两个变量的URL作为GET参数,您还将执行将处理该路由的Controller函数。我们假设以下是您的 web.php或routes.php 文件。

Route::get('firstpage","SomeController@view1");
Route::get("secondpage","SomeController@view2");

现在,在view2的{​​{1}}方法中,您可以检查这些变量是否存在。以下是SomeControllervar1的示例。

var2

这是你可以在视图之间传递变量的方法。

答案 1 :(得分:0)

恕我直言使用sessions的最佳方式。

session()->put('data', $data);

并检索它并检查密钥是否存在:

if (session()->has('data')) {
    $data = session('data'); //array
}

如果您只使用会话中的$ data(),只需提取一次session()->pull('data'); //array

如果您使用数据库会话,请注意。您可能需要更改字段'有效负载'如果$ data包含大量数据,则从TEXT到MEDIUMTEXT。

会话的使用不是搜索引擎(SEO)友好的。如果这很重要,那么制作网址的最简单方法是$str = http_build_query($data);并构建网址\URL()->route('your.route').'?'.$str;

要访问网址中的数据:$title = \Request::query('title');