laravel的HTTP請求:獲取輸入信息

laravel框架獲取輸入是非常的方便,它提供了多種方法來獲取輸入。

laravel中使用illuminatehttprequest實例來接受請求,如下

use?IlluminateHttpRequest;  $request?=?new?Request(); echo?$request->method();

可以用簡便的自動注入方法,使用如下:

<?php namespace AppHttpControllers;  use IlluminateHttpRequest; use IlluminateSupportFacadesRoute;  class IndexController extends Controller {     public function index (Request $request)     {         dump($request->method());???? ????} }

獲取請求路徑和請求方法

獲取請求方法非常的簡單,使用method方法即可。另外,還有一個判斷當前請求動作的方法isMethod

if?($request-&gt;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-&gt;all(); //?or $request-&gt;input();

獲取一個輸入

獲取一個輸入,也是使用input方法,但是要給第一個參數,該參數表示需要獲取的字段的值。

$request-&gt;input('name');

input還可以接受第二個參數,該參數是當沒有獲取到字段值時設置的默認值。如:

$request-&gt;input('name',?'php.cn');

除此之外,input還能獲取數值及json數據,獲取時使用操作符“.”

$request-&gt;input('users.name'); $request-&gt;input('users.0.name'); $request-&gt;input('users.*.name');

除了input方法外,還有一個query方法也可以獲取輸入,但是它們的區別是,input能從表單和查詢字符串獲取輸入,而query方法只能從查詢字符串獲取輸入。query方法和input方法的用法是一樣的,這里就不做演示了。

還有一種簡單獲取輸入方法,叫做動態獲取輸入,可以直接通過屬性來獲取輸入。比如表單中含有name字段,那么就可以通過以下方法獲取

$request-&gt;name;

但要注意的是,Laravel 將會先從請求體中查找參數。如果該值不存在,則從路由參數中查找。

獲取一個bool值

laravel提供一個獲取字段值并主動將它轉換為bool類型值的函數,該方法是boolean。

if?($request-&gt;boolean('name'))?{ ????//?... }

判斷值是否存在

判斷一個輸入值是否存在有幾個方法,用法稍微有些區別。hasfilled都可以用來判斷輸入值是否存在,但區別在于:has只要該字段值存在就返回真。而filled不僅存在而且還要不為空的情況才返回真。

has還可以用來判斷多個字段,如果多個字段值都存在就返回真,否則返回假

if?($request-&gt;has(['name',?'email']))?{}

而hasAny則只有有一個字段值存在就返回真

if?($request-&gt;hasAny(['name',?'email']))?{}

獲取部分輸入

laravel還能夠獲取部分輸入,使用only或except方法,它們的用法和功能完全一樣。返回的是一個關聯數組:

$request-&gt;only('name',?'email'); //?or $request-&gt;only(['name',?'email']);

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享