如何在Laravel中不使用URL将变量传递给视图?

时间:2018-07-25 16:07:30

标签: laravel

伙计们。我是Laravel的新手。

我只是想知道是否需要将一些敏感信息(这些信息写在窗体上)传递给控制器​​,然后传递给另一个视图。

如何在不使用URL的情况下将信息传递给视图?

我做了一些小的测试,但是结果都是一样的(URL会包含数据)。 这是代码。

HTML(a):

<form action="/data" method="GET" class="form-horizontal">
<div class="form-group">
    <input type="text" class="form-control" name="Test">
</div>
<div class="form-group">
    <button type="submit" class="btn btn-primary">test</button>
</div>

web.php:

Route::get('/data', 'DataController@show');

DataController.php:

    public function show(Request $request) {
    return view('testShow');
}

HTML(b):

<div class="ShowDataHere">
@if(!empty(request()->all()))
    {{ request()->Test }}
@endif

2 个答案:

答案 0 :(得分:0)

在Laravel中,当您使用Route :: post('/ data','DataController @ show')时,由于显示功能,Laravel期望获得GET。

因此您可以使用Route :: post('/ data','DataController @ someFunction')并在您的laravel控制器中获取:

public function someFunction(Request $request)
    {
        $array = $request->all(); //your fields
    }

在此函数中,您可以使用$ array = $ request-> all();

获取属性。

答案 1 :(得分:0)

只需将表单更改为使用POST而不是GET。

在表单上……

<form action="/data" method="POST" class="form-horizontal">

在您的路线上...

Route::post('/data', 'DataController@show');

这将以一种不太可见的方式(不在URL中)将所有表单字段发送到服务器,但是为了确保表单的安全性,您需要确保也使用HTTPS来提供该表单。