我有以下代码:
$object = Object::with("prototypes.fields")->findOrFail($id)->get();
$object_copied = $object->except(['id', 'prefix', 'prototypes']);
dd($object_copied->all());
最后一行返回包含以下字段的集合:'id', 'prefix', 'prototypes'
我有以下代码:
$object = Object::with("prototypes.fields")->findOrFail($id)->get();
$object_copied = $object->except(['id', 'prefix', 'prototypes']);
dd($object_copied->all());
最后一行返回包含以下字段的集合:'id', 'prefix', 'prototypes'
第一件事:
$object = Object::with("prototypes.fields")->findOrFail($id)->get();
这可能是错误的。
您应该使用:
$object = Object::with("prototypes.fields")->findOrFail($id);
或者
$object = Object::with("prototypes.fields")->get();
第二件事是你真正想要达到的目标。except
如果您只想获取某些列,则方法可能不是您真正想要在这里使用的。在这种情况下,更好的选择是select
从数据库获取数据或使用map
方法时使用。
假设$object
你有一个对象的集合,except
你将只从方法中删除一些对象(那些具有给定键的对象),并且这些集合中的键将是数字 0、1、... x 所以如果你想在这里你应该只传递数字键不包括集合中的第一个模型。
尝试$object_copied = collect($object )->except('id', 'prefix', 'prototypes');