如何在Laravel中提取原始表单数据?
为了演示上述内容,我们将使用以下表单,它包含用户名和密码字段。让我们尝试使用以下方法获取原始表单数据:
示例1
使用file_get_contents()
file_get_contents() 方法是一个内置的PHP函数,它将文件内容返回为字符串格式。现在,要获取表单的原始数据,您可以将php://input作为输入传递给file_get_contents。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class testvalidationController extends Controller { public function showform() { return view('login'); } public function validateform(Request $request) { $test = file_get_contents('php://input'); echo $test; } }
输出
以上代码的输出为:
_token=zHuIkXpqcRqvZO4vTgxH0fFk5fCmvqSavrCjHVMi&username=testing&password=abcd
示例2
使用getContent()方法。
getContent() 可以用于Request类,它将以字符串格式返回表单数据。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Input; class testvalidationController extends Controller { public function showform() { return view('login'); } public function validateform(Request $request) { echo Request::createFromGlobals()->getContent(); } }
输出
以上代码的输出为:
_token=zHuIkXpqcRqvZO4vTgxH0fFk5fCmvqSavrCjHVMi&username=test&password=xya
示例3
在Request类上使用all()方法
all() 方法将以数组形式返回所有表单数据。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Input; class testvalidationController extends Controller { public function showform() { return view('login'); } public function validateform(Request $request) { $data = Request::createFromGlobals()->all(); print_r($data); } }
输出
以上代码的输出为:
Array ( [_token] => zHuIkXpqcRqvZO4vTgxH0fFk5fCmvqSavrCjHVMi [username] => testing [password] => xyz )
示例4
使用get()方法
您也可以使用Request类提供的get() 方法。您需要传入您需要读取其值的字段名称。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Input; class testvalidationController extends Controller { public function showform() { return view('login'); } public function validateform(Request $request) { echo $username = Request::createFromGlobals()->get('username'); echo "<br/>"; echo $password = Request::createFromGlobals()->get('password'); } }
输出
以上代码的输出为:
testing sdsads
广告