2017-05-04 26 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メソッドは、いくつかの列だけを取得する場合は、ここで実際に使用したいメソッドではない可能性があります。この場合、データベースからデータを取得するときにはselectを使用するか、mapメソッドを使用する方がよいでしょう。

exceptを使用してオブジェクトのコレクションを持っていると仮定すると、指定されたキーを持つメソッドから一部のオブジェクトのみが削除され、それらのコレクションのキーは数値0,1、... xになります。最初のモデルをコレクションに含めない場合は、ここにキーを入力します。

+0

はい、あなたは正しいです!回答ありがとうございます – Garaman

0

お試し$object_copied = collect($object)->except('id', 'prefix', 'prototypes');

+0

同じ結果 – Garaman

関連する問題