2017-05-04 32 views
0

我有以下代码:除了不Laravel收藏工作

$object = Object::with("prototypes.fields")->findOrFail($id)->get(); 

    $object_copied = $object->except(['id', 'prefix', 'prototypes']); 

    dd($object_copied->all()); 

最后一行返回收集与这应该是除了字段:'id', 'prefix', 'prototypes'

回答

1

的第一件事:

$object = Object::with("prototypes.fields")->findOrFail($id)->get(); 

这可能是错误的。

您应该使用:

$object = Object::with("prototypes.fields")->findOrFail($id); 

$object = Object::with("prototypes.fields")->get(); 

第二件事是你真正想要达到的目标。如果你只想得到一些列,except方法可能不是你真正想在这里使用的。在这种情况下,从数据库获取数据或使用map方法时,更好的选项将使用select

假设在$object则可以选择使用except您将删除只从方法中的一些对象的对象的集合(具有给定的键)和键的那些集合中的将是数字0,1,... X所以你应该只传递数值如果你不想在集合中包含第一个模型,请在这里键入。

+0

是的,你说得对!谢谢你的回答 – Garaman

0

尝试$object_copied = collect($object)->except('id', 'prefix', 'prototypes');

+0

同样的结果 – Garaman