首頁 > php框架 > Laravel > 主體

laravel的HTTP請求:取得輸入訊息

齐天大圣
發布: 2020-12-15 09:27:27
原創
1996 人瀏覽過

在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(&#39;post&#39;)) {
    // ...
}
登入後複製

取得請求路徑的方法也有幾個,它們之間是有區別的,例如對一個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(&#39;name&#39;);
登入後複製
input也可以接受第二個參數,該參數是當沒有取得到欄位值時所設定的預設值。如:
$request->input(&#39;name&#39;, &#39;php.cn&#39;);
登入後複製
除此之外,input還能取得數值及json數據,取得時使用運算元
「.」

$request->input(&#39;users.name&#39;);
$request->input(&#39;users.0.name&#39;);
$request->input(&#39;users.*.name&#39;);
登入後複製

除了input方法外,還有一個

query方法也可以取得輸入,但是它們的差異是,input能從表單和查詢字串取得輸入,而query方法只能從查詢字串取得輸入。 query方法和input方法的用法是一樣的,這裡就不做示範了。 還有一種簡單取得輸入方法,叫做動態取得輸入,可以直接透過屬性來取得輸入。例如表單中含有name字段,那麼就可以透過以下方法取得

$request->name;
登入後複製

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

取得一個bool值

#laravel提供一個取得欄位值並主動將它轉換為bool型別值的函數,該方法是boolean。

if ($request->boolean(&#39;name&#39;)) {
    // ...
}
登入後複製
判斷值是否存在

判斷一個輸入值是否存在有幾個方法,用法稍微有些差異。 ###has###和###filled###都可以用來判斷輸入值是否存在,但差別在於:has只要該欄位值存在就回傳真。而filled不僅存在而且還要不為空的情況才返回真。 ######has也可以用來判斷多個字段,如果多個字段值都存在就返回真,否則返回假###
if ($request->has([&#39;name&#39;, &#39;email&#39;])) {}
登入後複製
###而hasAny則只有有一個字段值存在就返回真# ##
if ($request->hasAny([&#39;name&#39;, &#39;email&#39;])) {}
登入後複製
#########取得部分輸入############laravel也能夠取得部分輸入,使用only或except方法,它們的用法和功能完全一樣。傳回的是一個關聯數組:###
$request->only(&#39;name&#39;, &#39;email&#39;);
// or
$request->only([&#39;name&#39;, &#39;email&#39;]);
登入後複製

以上是laravel的HTTP請求:取得輸入訊息的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板