91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Laravel中用戶數據的獲取和處理

發布時間:2021-03-02 10:36:03 來源:億速云 閱讀:284 作者:清風 欄目:編程語言

這篇文章主要為大家展示了Laravel中用戶數據的獲取和處理,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學習一下“Laravel中用戶數據的獲取和處理”這篇文章吧。

Laravel 是什么

Laravel 是一套簡潔、優雅的PHP Web開發框架。它可以讓你從面條一樣雜亂的代碼中解脫出來;它可以幫你構建一個完美的網絡APP,而且每行代碼都可以簡潔、富于表達力。

本來講完路由和控制器,應該接著講一講視圖的,但是鑒于視圖的功能實在太枯燥,況且是前端頁面,免不了寫一些js和css。而laravel是偏重后端的,所以為了給后端的開發同學緩沖的時間,我們跳過視圖,先來說說用戶數據的獲取和處理,這幾乎是任何應用必備之功能。

用戶數據同時又是危險的!本文不會教你規避危險!

代碼時間

我們在講路由規劃的時候,說了如何使用url的位置參數綁定的方式進行導向,其實那也是一種獲取用戶輸入數據的方式,

只不過,傳入的位置參數一般都人畜無害,公開訪問,任你來來往往。

如果是單個用戶的私密數據,必然是不能直接url內嵌傳輸的。

laravel把用戶的輸入存儲在 Input 對象內,而從邏輯上看,用戶輸入應該歸屬于請求項的,所以 Request 也繼承了 Input 的方法和數據。

比如有下面的路由:

Route::post('form', function (Illuminate\Http\Request $request) {
    // $request->method()});

模擬的是一個表單地址,通過post方法傳送數據,然后使用 Request 方法。可供使用的獲取方法,我們一一道來。

先說說 $request->all(),這一個是打印所有的輸入數據,比如表單內可能有下面這些字段。HTML 內容你們將就看一下哈!

<form method="post" action="/post-route?utm=12345">
    {{ csrf_field() }}    <input type="text" name="firstName">
    <input type="submit"></form>

為了調試數據,我們的路由這樣注冊:

Route::post('/post-route', function (Request $request) {
    var_dump($request->all());});

大家猜猜會輸出些什么內容呢?

/**
* [
* '_token' => 'CSRF token here',
* 'firstName' => 'value',
* 'utm' => 12345
* ]
*/

沒錯兒,就是看到的post表單的字段 firstName,還有 querystring 的查詢參數 utm,還有一個是用于 CSRF 防護的laravel內置函數,默認的表單字段就是 __token,所以大可不必費心。

但是有代碼潔癖的同學會覺得受不了,這個不是我的字段,我在代碼里也用不到,我不想看到這個 __token,這個陌生的變量。可以,我們在請求參數內直接過濾掉就好了:

Route::post('/post-route', function (Request $request) {
    var_dump($request->except('_token'));});

其中,except() 方法就是用來過濾某些字段,不需要使用的。與之對應的就是 only() 方法,是指定哪些是用的字段。這樣用:

$request->only(['firstName', 'utm']);

還有些時候邏輯判斷有些鍵是否存在,laravel提供了兩種方式判斷是否存在,一個是 has ,一個是 exists。有同學會疑問,為什么有了 has還要 exists呢?因為他們的作用不同。

has方法不僅會判斷該鍵存在,如果該鍵的值是 (比如 null,空字符串,false,0,空數組,空對象等等),也是判斷為false的。所以就有必要使用 exists 單純地判斷鍵的存在與否,大家用的時候一定要注意這個細微的差別

用法很簡單,直接調用方法即可:

if ($request->has('utm')) {
    // Do some work}

如果對于輸入值鍵不存在,我們也可以為其設置一個默認值,這就是 input 方法的第二個參數,使用如下調用:

Route::post('/post-route', function (Request $request) {
    $userName = $request->input('name', 'anonymous');});

如果用戶沒有傳入 name 字段,那么就用 anonymous 替代。

上面說的都是簡單的鍵值對,還有一種表單,傳入的字段可能會是數組,比如下面這個:

<form method="post" action="/post-route">
    {{ csrf_field() }}
    <input type="text" name="employees[0][firstName]">
    <input type="text" name="employees[0][lastName]">
    <input type="text" name="employees[1][firstName]">
    <input type="text" name="employees[1][lastName]">
    <input type="submit"></form>

laravel內獲取數組可以使用點式方式讀取,這是因為laravel解析的時候使用了助手類 Arr 的通用方法。比如獲取某個鍵:

$employeeZeroFirstName = $request->input('employees.0.firstName');

明確地指定鍵名,并對應好層級即可。還可以使用星號匹配某一層級所有的鍵:

$allLastNames = $request->input('employees.*.lastName');

或者僅指定某個鍵,后面不管多少層級原樣返回:

$employeeOne = $request->input('employees.1');

以上就是關于“Laravel中用戶數據的獲取和處理”的內容,如果改文章對你有所幫助并覺得寫得不錯,勞請分享給你的好友一起學習新知識,若想了解更多相關知識內容,請多多關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新河县| 定西市| 龙江县| 揭东县| 全椒县| 曲周县| 佛冈县| 内黄县| 玛曲县| 卓尼县| 揭西县| 大姚县| 泾川县| 淮安市| 当阳市| 新邵县| 南皮县| 垫江县| 南涧| 白银市| 涟水县| 枝江市| 奎屯市| 额尔古纳市| 尼勒克县| 离岛区| 双流县| 郎溪县| 明水县| 崇礼县| 汉阴县| 耒阳市| 阳城县| 新津县| 吉木萨尔县| 屯昌县| 铁力市| 金川县| 广灵县| 黑山县| 肥西县|