我有一个视图,其中包含一些我希望传递给新页面的变量,并使用它们预填充表单。
$data->title
$data->catid
$data->category
$data->groupName
“vanila方式我可以创建一个类似something.com?var1=something&var2=something等的网址。
但我怎么能在laravel中做到这一点?
答案 0 :(得分:0)
考虑您可以重定向到包含GET参数的页面。例如,“something.com?var1=something&var2=something”,您实际上可以将此数据传递到Laravel中的另一个视图。我们假设您要将var1
和var2
变量传递给另一个视图。
您将用户重定向到包含两个变量的URL作为GET
参数,您还将执行将处理该路由的Controller函数。我们假设以下是您的 web.php或routes.php 文件。
Route::get('firstpage","SomeController@view1");
Route::get("secondpage","SomeController@view2");
现在,在view2
的{{1}}方法中,您可以检查这些变量是否存在。以下是SomeController
和var1
的示例。
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');