php - Laravel 5.4 - instanceof Collection 在被传递时不返回 true 似乎是一个 Collection
问题描述
我正在使用一种instanceof Collection
检查方法:
if ($group instanceof Collection) {
$group = $group->pluck('name');
}
许多地方都在使用它,所以我无法更改它(不是我想要的),但我确实想传入一组组名。我正在像这样实例化我的收藏:
$group = collect(['one', 'two', 'three']);
当我dd
使用 $group 变量时,它看起来像一只鸭子,
Collection {#612
#items: array:3 [
0 => "one"
1 => "two"
2 => "three"
]
}
但在该 instanceof 检查中返回 false。任何想法为什么会这样?
解决方案
您的问题是instanceof
正在检查 Eloquent 的扩展实例Collection
。
use Illuminate\Database\Eloquent\Collection;
如果您更改use
基础集合类,它应该可以工作:
use Illuminate\Support\Collection;
推荐阅读
- regex - 仅当字符串中的所有单词都以特定字符开头时,正则表达式才匹配
- node.js - 对于慢速游戏内聊天,是否有比 socket.io 更好的解决方案?
- amazon-web-services - Terraform Cloud / Enterprise - 如何使用 AWS 代入角色
- javascript - 将 Go 文件转换为 JS 失败
- java - (已修复)JTable 不添加新行
- android - 安卓计费;如何解决“找不到您尝试购买的商品”
- c - 另一个函数中带有数组的双指针
- reactjs - 让电影 = 等待 response.data.films.map(film =>
- c# - 如何使用 Angular 和 ASP.NET Core 3.1 确认电子邮件
- json - .NET Core 控制台应用程序依赖注入 - 如何配置 Newtonsoft.Json 的使用以反序列化 IOptions<>