2015-04-24 65 views
1

我有一個充滿模型的集合,我將如何將這些放入關係的saveMany方法?我知道它必須是一個數組,但是當我做$collection->toArray()時,它們不再是雄辯的模型。插入集合以節省許多雄辯

public function uploadAndGetModels($messageId, array $attachments) 
{ 
    $models = new Collection(); 
    $attachments = new Collection($attachments); 
    $attachments->each(function (UploadedFile $attachment) use ($messageId, $models) { 
     $identifier = $this->uploader->makeIdentifier($attachment->getClientOriginalExtension()); 
     $this->uploader->uploadImage($attachment, "attachments/{$identifier}"); 
     $model = new Attachment(array('message_id' => $messageId, 'path' => $identifier)); 
     $models->push($model); 
    }); 

    return $models; 
} 

$models結果是Collection充滿Attachment模型。

if ($request->hasFile('attachments')) { 
    $attachments = $attachmentRepository->uploadAndGetModels($message->id, $request->file('attachments')); 
    $message->attachments()->saveMany($attachments); 
} 

我該如何解決這個問題?

回答

4

Collection類有一個all()方法,它將集合中的所有項返回爲模型數組。

考慮到這一點,這應該工作...

$message->attachments()->saveMany($attachments->all());