如何检查 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.