因此,我有一个关系,即客户端附加到单引号,而客户端具有一组度量(但我称其为Measurement,抱歉,有点混乱,但它可以工作)。因此,如果我将$quote
绑定到自己的路线并执行return $quote->client-measurement;
,则会得到以下信息:
{
"id": 11,
"client_id": 5,
"eaves": "101.15",
"ridges": "50.57",
"hips": null,
"valleys": null,
"rakes": "95.08",
"drip_edge": null,
"flashing": "1.01",
"step_flashing": null,
"quote_id": null,
"item_id": null,
"created_at": "2019-01-08 17:14:43",
"updated_at": "2019-01-08 17:14:43",
"total_roof_area": "20.87",
"total_steep_slope_area": "12.61",
"total_low_slope_area": "8.27",
"length": null,
"width": null,
"parapet_walls": null,
"roof_penetrations": null,
"total_low_slope_area_without_penetrations": null,
"penetrations_perimeter": null,
"roof_length": null
}
有没有办法我只能选择那些不为空的列?我知道我可以存储所有内容,然后遍历它并恢复值,但是我觉得那效率太低了。有什么想法吗?
答案 0 :(得分:1)
假设client-measurement
是一种口才的模型,则可以使用filter()
:
return collect($quote->client_measurement)->filter();
filter
方法使用给定的回调过滤集合, 仅保留那些通过给定真相测试的项目。如果未提供回调,则该集合中所有 与
false
等效的内容将被删除。
答案 1 :(得分:1)
除了@ travis-britz答案之外,您还可以执行以下操作:
return array_filter($quote->client-measurement->toArray());
您可以找到有关array_filter
here的文档。