伙计们。我是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
答案 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来提供该表单。