溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

?在laravel框架獲取輸入的方法有哪些

發(fā)布時(shí)間:2020-12-16 10:52:09 來源:億速云 閱讀:292 作者:小新 欄目:編程語言

小編給大家分享一下在laravel框架獲取輸入的方法有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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

在laravel中使用Illuminate\Http\Request實(shí)例來接受請(qǐng)求,如下

use Illuminate\Http\Request;

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

可以用簡(jiǎn)便的自動(dòng)注入方法,使用如下:

<?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());    
    }
}

獲取請(qǐng)求路徑和請(qǐng)求方法

獲取請(qǐng)求方法非常的簡(jiǎn)單,使用method方法即可。另外,還有一個(gè)判斷當(dāng)前請(qǐng)求動(dòng)作的方法isMethod

if ($request->isMethod('post')) {
    // ...
}

獲取請(qǐng)求路徑的方法也有幾個(gè),它們之間是有區(qū)別的,比如對(duì)一個(gè)URL地址:http://example.com/path2/path3?a=23&b=3,三個(gè)方法能獲得的值分別如下:

  • path():獲取路徑,path2/path3

  • url():獲取url地址,但不含?及后面字符串。http://example.com/path2/path3

  • fullUrl():獲取完整的路徑。http://example.com/path2/path3?a=23&b=3

獲取輸入

下面從幾個(gè)方面看獲取輸入,如獲取全部輸入或獲取單個(gè)輸入獲取部分輸入等。

獲取全部輸入

獲取全部輸入有兩種方法可以得到,all()以及input()。input中不加任何參數(shù)表示接受全部的意思:

$request->all();
// or
$request->input();

獲取一個(gè)輸入

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

$request->input('name');

input還可以接受第二個(gè)參數(shù),該參數(shù)是當(dāng)沒有獲取到字段值時(shí)設(shè)置的默認(rèn)值。如:

$request->input('name', 'php.cn');

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

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

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

還有一種簡(jiǎn)單獲取輸入方法,叫做動(dòng)態(tài)獲取輸入,可以直接通過屬性來獲取輸入。比如表單中含有name字段,那么就可以通過以下方法獲取

$request->name;

但要注意的是,Laravel 將會(huì)先從請(qǐng)求體中查找參數(shù)。如果該值不存在,則從路由參數(shù)中查找。

獲取一個(gè)bool值

laravel提供一個(gè)獲取字段值并主動(dòng)將它轉(zhuǎn)換為bool類型值的函數(shù),該方法是boolean。

if ($request->boolean('name')) {
    // ...
}

判斷值是否存在

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

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

if ($request->has(['name', 'email'])) {}

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

if ($request->hasAny(['name', 'email'])) {}

獲取部分輸入

laravel還能夠獲取部分輸入,使用only或except方法,它們的用法和功能完全一樣。返回的是一個(gè)關(guān)聯(lián)數(shù)組:

$request->only('name', 'email');
// or
$request->only(['name', 'email']);

以上是“在laravel框架獲取輸入的方法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI