如何检查 Laravel 集合是否为空?

laravelphpserver side programming更新于 2025/4/30 3:52:17

在回答上述问题之前,让我们先了解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() 方法返回集合内的项目数。以下是 id 的语法 −

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

相关文章