如何检查 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() 方法返回集合内的项目数。以下是 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

