在laravel框架上取得輸入是非常的方便,它提供了多種方法來取得輸入。
在laravel中使用Illuminate\Http\Request實例來接受請求,如下
use Illuminate\Http\Request; $request = new Request(); echo $request->method();
可以用簡單的自動注入方法,使用如下:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; class IndexController extends Controller { public function index (Request $request) { dump($request->method()); } }
取得請求路徑和請求方法
取得請求方法非常的簡單,使用method方法即可。另外,還有一個判斷目前請求動作的方法isMethod
if ($request->isMethod('post')) { // ... }
取得請求路徑的方法也有幾個,它們之間是有區別的,例如對一個URL位址:http://example.com/ path1/path2?a=23&b=3,三個方法能得到的值分別如下:
#path():取得路徑,path1/path2
url():取得url位址,但不含?及後面字串。 http://example.com/path1/path2
fullUrl():取得完整的路徑。 http://example.com/path1/path2?a=23&b=3
#取得輸入
##下面從幾個方面看獲取輸入,如獲取全部輸入或獲取單一輸入獲取部分輸入等。
取得全部輸入取得全部輸入有兩種方法可以得到,all()以及input()。 input中不加任何參數表示接受全部的意思:
$request->all(); // or $request->input();
取得一個輸入,也是使用input
方法,但是要給第一個參數,該參數表示需要取得的欄位的值。$request->input('name');
$request->input('name', 'php.cn');
$request->input('users.name'); $request->input('users.0.name'); $request->input('users.*.name');
query方法也可以取得輸入,但是它們的差異是,input能從表單和查詢字串取得輸入,而query方法只能從查詢字串取得輸入。 query方法和input方法的用法是一樣的,這裡就不做示範了。 還有一種簡單取得輸入方法,叫做動態取得輸入,可以直接透過屬性來取得輸入。例如表單中含有name字段,那麼就可以透過以下方法取得
$request->name;
但要注意的是,Laravel 將會先從請求體中尋找參數。如果該值不存在,則從路由參數中尋找。
取得一個bool值#laravel提供一個取得欄位值並主動將它轉換為bool型別值的函數,該方法是boolean。if ($request->boolean('name')) { // ... }
if ($request->has(['name', 'email'])) {}
if ($request->hasAny(['name', 'email'])) {}
$request->only('name', 'email'); // or $request->only(['name', 'email']);
以上是laravel的HTTP請求:取得輸入訊息的詳細內容。更多資訊請關注PHP中文網其他相關文章!