如何檢查 Laravel 集合是否為空?


在我們回答上述問題之前,讓我們首先了解**Laravel 中的集合是什麼**。Laravel 中的集合是一個 API 包裝器,可幫助您處理對陣列執行的不同操作。它使用類  Illuminate\Support\Collection來處理 Laravel 中的陣列。

要從給定陣列建立集合,您需要使用collect()輔助方法,該方法返回集合例項。稍後,您可以對集合例項使用一系列方法,例如轉換為小寫和排序。

示例

本節中的示例演示瞭如何從給定陣列建立集合。在繼續操作之前,請確保您已建立了自己的控制器,如果沒有,請使用 artisan make 命令建立一個控制器,如下所示:

php artisan make:controller UserController

這將在“Http/Controllers”路徑中建立一個控制器。複製以下程式碼並將其貼上到建立的控制器中。

UserController.php

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Collection; class UserController extends Controller { public function index() { $mynames = collect(['Andria', 'Josh', 'James', 'Miya', 'Henry']); print_r($mynames); } }

Web.php

我們需要建立一個/註冊一個路由來呼叫“resources/routes/web.php”檔案中的index()函式,如下所示:

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\UserController; Route::get('/', function () { return view('welcome'); }); Route::get('getData', [UserController::class,'index' ] );

建立這兩個檔案後,執行伺服器,如下所示:

php artisan serve

輸出

如果您透過向 URL  http://127.0.0.1:8000/getData 傳送請求來測試上述程式,它將生成以下輸出

Illuminate\Support\Collection Object
(
   [items:protected] => Array
      (
         [0] => Andria
         [1] => Josh
         [2] => James
         [3] => Miya
         [4] => Henry
      )
   [escapeWhenCastingToString:protected] =>
)

有多種方法可以檢視集合是否為空。它們是:

使用 isEmpty() 方法

isEmpty()方法返回 true/false。如果集合為空,則為 true;如果不為空,則為 false。以下是此方法的語法:

isEmpty()

示例

以下示例使用isEmpty()方法驗證給定集合是否為空:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Collection; class UserController extends Controller { public function index() { $mynames = collect([]); if ($mynames->isEmpty()) { return "Collection is Empty"; } else { return "Collection is Not Empty"; } } }

UserController.php的內容替換為上述程式碼,清除路由快取,如下所示:

php artisan route:clear

輸出

如果您透過向 URL  http://127.0.0.1:8000/getData 傳送請求來測試上述程式,它將生成以下輸出:

Collection is Empty

使用 isNotEmpty() 方法

如果被測試的集合不為空,則isNotEmpty()方法返回 true;如果為空,則返回 false。以下是此方法的語法:

isNotEmpty()

示例

以下示例使用isNotEmpty()方法驗證給定集合是否為空:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Collection; class UserController extends Controller { public function index() { $mynames = collect([]); if (!$mynames->isNotEmpty()) { return "Collection is Empty"; } else { return "Collection is Not Empty"; } } }

輸出

Collection is Empty

使用 count() 方法

count()方法返回集合中專案的數量。以下是它的語法:

count()

示例

以下示例使用count()方法驗證給定集合是否為空:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Collection; class UserController extends Controller { public function index() { $mynames = collect([]); if ($mynames->count() === 0) { return "Collection is Empty"; } else { return "Collection is Not Empty"; } } }

輸出

Collection is Empty

使用 first() 方法

first()方法返回集合中的第一個元素。

first()

示例

您可以使用 first() 來了解集合是否為空,如下面的示例所示:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Collection; class UserController extends Controller { public function index() { $mynames = collect([]); if (!$mynames->first()) { return "Collection is Empty"; } else { return "Collection is Not Empty"; } } }

輸出

Collection is Empty

使用 count() 方法

count()方法返回給定集合中專案的數量。以下是此方法的語法

count($collection)

示例

您可以使用此方法檢查集合是否為空,如下所示:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Collection; class UserController extends Controller { public function index() { $mynames = collect([]); if (count($mynames) === 0) { return "Collection is Empty"; } else { return "Collection is Not Empty"; } } }

輸出

Collection is Empty

更新於:2022年8月29日

18K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.