php - 获取集合内对象的值
问题描述
我在 Laravel 应用程序中使用来自 Yajra 的 DataTables as Service。
我有一个这样的集合:
Collection {#1178
#items: array:2 [
0 => array:7 [
"email" => "user1@example.com"
"id" => 6
"emailBlacklisted" => false
"smsBlacklisted" => false
"modifiedAt" => "2019-02-05T17:20:17.723+01:00"
"listIds" => array:2 [
0 => 2
1 => 3
]
"attributes" => {#1139
+"NAME": "Doe"
+"FIRSTNAME": "John"
}
]
1 => array:7 [
"email" => "user2@example.com"
"id" => 1
"emailBlacklisted" => false
"smsBlacklisted" => false
"modifiedAt" => "2019-02-05T21:12:04.094+01:00"
"listIds" => array:1 [
0 => 2
]
"attributes" => {#1143}
]
]
}
在我的刀片视图中,我使用 {{ $email }} -> Simple 显示电子邮件值
我认为这对你来说是一个非常容易的问题......
但我无法显示属性键的值。(我想显示名称:Doe)。-> 属性是我收藏中的一个对象。
谢谢你帮我解锁...
解决方案
如果我理解正确,您希望能够显示属性的键和值。
如果您使用刀片,您可以尝试扩展的 foreach 循环:
@foreach($attributes as $key => $value)
{{ $key }}: {{ $value }}
@endforeach
这假设您已经可以访问每个单独模型的属性,例如$item->email
或 在这种情况下$item->attributes
。如果需要,您可以@foreach($item->attributes as $key => $value)
启动它。
如果您只想显示特定值,请使用 null-coalesce 运算符??
。
$item->attributes['NAME'] ?? ''
您可以在其他地方的逻辑中使用任何可能为空的表达式:
// the fallback does not have to be a string
$person = Person::find($id) ?? Person::first();
// it can be chained
$value = $parameter ?? $localDefault ?? $globalDefault;
如果找不到 NAME,它将回退到 后面的内容??
,在上面的示例中它是一个空字符串。如果属性不存在,这是避免任何错误的好方法。它与三元检查它是否为空做同样的事情:
($item->attributes['NAME'] !== null) ? $item->attributes['NAME'] : '';
这显然很混乱,所以 null-coalesce 运算符派上用场了!
推荐阅读
- amazon-web-services - 在 AWS SiteWise 服务中使用“newUUID()”aws iot 函数,该函数返回一个随机的 16 字节 UUID,以存储为分区键
- amazon-web-services - gRPC AWS 入口 Kubernetes
- android - Jetpack Compose:ListItem 中的中心图标或尾随元素
- java - Redis 对哈希中的元素进行排序和检索
- linux - Ubuntu - NGINX 在 DigitalOcean 空间 /mnt/ 上找不到文件
- swift - 在 swift 包管理器清单中包含资源
- pymongo - PyMongo:如何获取与任何可能的过滤器匹配的所有对象?
- javascript - 未按预期显示时间
- c++ - 模板化包装器中基类型的 C++ 转换运算符
- asp.net - 如何在 Visual Basic 中格式化日期?