我从模型中获取所有记录,但我需要从中获取 block ,我只需要电子邮件
的值,以便我映射它
$forwadings = \App\Models\ForwardingEmail::where('company_id', $companyId)
->where('status', 1)
->get(['email']);
->map(function($forwarding) {
return $forwarding['email'];
})
return $forwadings;
返回显示这个
[
"email12@example.com",
"email13@example.com",
"email1@example.com",
"email2@example.com",
"email3@example.com",
"email6@example.com",
"email7@example.com",
"email8@example.com",
"email4@example.com",
"email5@example.com",
"email9@example.com",
"email10@example.com"
]
这里的问题是当我返回$forwardings->chunk(10)
时,它显示:
[
[
"email12@example.com",
"email13@example.com",
"email1@example.com",
"email2@example.com",
"email3@example.com",
"email6@example.com",
"email7@example.com",
"email8@example.com",
"email4@example.com",
"email5@example.com"
],
{
"10": "email9@example.com",
"11": "email10@example.com"
}
]
为什么会发生这种情况?我该如何解决这个问题?我尝试在 block 结果上使用 toArray 但没有成功。我正在使用 laravel 5.3
最佳答案
Laravel 的 ->chunk()
方法将递增的 id
应用于所有分块项目。转换为 JSON 时,这是一个问题,因为 JavaScript 不允许数组以偏移键值开头(不以 0 开头),因此必须将它们定义为对象。
您可以自行处理以删除键值。像这样的东西应该有效。
$chunks = \App\Models\ForwardingEmail::where('company_id', $companyId)
->where('status', 1)
->pluck('email')
->chunk(10);
foreach ($chunks as $key => $chunk) {
$chunks[$key] = array_values($chunk->toArray());
}
return $chunks;
关于php - 集合上的 Laravel block 将第一个元素作为数组返回,第二个元素作为对象返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59035117/