如何在 Laravel 的控制器級別從所有請求物件中移除引數?
要獲取 HTML 表單中的所有欄位值,您可以使用 Request 類。類 Illuminate\Http\Request; 必須包含在您的控制器中。
示例 1
此示例顯示了學生登錄檔單,其中包含姓名、電子郵件、年齡和地址等欄位。
<html> <head> <title>Student Form</title> </head> <body> @if (count($errors) > 0) <div class = "alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif <?php echo Form::open(array('url'=>'/student')); ?> <table border = '1'> <tr> <td align = 'center' colspan = '2'>Student Registration</td> </tr> <tr> <td>Name</td> <td><?php echo Form::text('name'); ?></td> </tr> <tr> <td>Email</td> <td><?php echo Form::text('email'); ?></td> </tr> <tr> <td>Age</td> <td><?php echo Form::text('age'); ?></td> </tr> <tr> <td>Address</td> <td><?php echo Form::text('address'); ?></td> </tr> <tr> <td align = 'center' colspan = '2'><?php echo Form::submit('submit'); ?></td> </tr> </table> </body> </html>
StudentController 類如下所示:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Student; //use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\DB; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Storage; use URL; use Illuminate\Support\Facades\App; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; use Illuminate\Validation\Rule; class StudentController extends Controller{ public function index(Request $request) { return view('student'); } public function validateform(Request $request) { print_r($request->all()); } }
在 routes/web.php 中,路由定義如下:
use App\Http\Controllers\StudentController;
Route::get('student', [StudentController::class, 'index']);
Route::post('student',[StudentController::class, 'validateform']);
輸出
在控制器中,我們列印使用者輸入的所有欄位。輸出如下所示:

在表單中輸入詳細資訊,然後單擊提交,您應該會看到以下詳細資訊:
Array ( [_token] => nUXVJ5adsFLADKC9RCbAJcdfYCRquy8GUkUCXtR8 [name] => Rasika Desai [email] => rasika@gmail.com [age] => 20 [address] => Pune )
該陣列包含輸入欄位的所有詳細資訊
示例 2
現在讓我們嘗試從請求物件中移除一個欄位。為此,您可以使用 unset() 方法。它是一個內建的 PHP 函式。讓我們嘗試移除 age 欄位並再次列印陣列。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Student; use Illuminate\Support\Facades\DB; class StudentController extends Controller { public function index(Request $request) { return view('student'); } public function validateform(Request $request) { print_r($request->all()); unset($request['age']); print_r($request->all()); } }
輸出
使用 unset($request['age']); 從請求物件中移除 age 欄位,如下面的輸出所示:
Array( [_token] => nUXVJ5adsFLADKC9RCbAJcdfYCRquy8GUkUCXtR8 [name] => Rasika Desai [email] => rasika@gmail.com [age] => 20 [address] => Pune ) Array( [_token] => nUXVJ5adsFLADKC9RCbAJcdfYCRquy8GUkUCXtR8 [name] => Rasika Desai [email] => rasika@gmail.com [address] => Pune )
示例 3
您可以使用 except() 方法。在此方法中,您需要傳遞要移除的鍵值。
此方法返回一個數組,其中包含除作為 except() 方法引數傳遞的欄位之外的所有欄位。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Student; class StudentController extends Controller { public function index(Request $request) { return view('student'); } public function validateform(Request $request) { print_r($request->all()); $data = $request->except(['age']); print_r($data); } }
輸出
以上程式碼的輸出為:
Array ( [_token] => nUXVJ5adsFLADKC9RCbAJcdfYCRquy8GUkUCXtR8 [name] => Rasika Desai [email] => rasika@gmail.com [age] => 20 [address] => Pune ) Array ( [_token] => nUXVJ5adsFLADKC9RCbAJcdfYCRquy8GUkUCXtR8 [name] => Rasika Desai [email] => rasika@gmail.com [address] => Pune )
示例 4
您還可以使用 $request->only() 方法。此方法獲取要保留的鍵,其餘鍵將被丟棄。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Student; class StudentController extends Controller { public function index(Request $request) { return view('student'); } public function validateform(Request $request) { print_r($request->all()); $data = $request->only(['name', 'email']); print_r($data); } }
輸出
以上程式碼的輸出如下所示:
Array ( [_token] => nUXVJ5adsFLADKC9RCbAJcdfYCRquy8GUkUCXtR8 [name] => Rasika Desai [email] => rasika@gmail.com [age] => 20 [address] => Pune ) Array ( [name] => Rasika Desai [email] => rasika@gmail.com )
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP