public function getWithImages($id = null) { $fileService = new FileService(); if ($id == null) { $filesQuery = $fileService->get(); $itemsQuery = $this->get(); $files = new Plinq($filesQuery); $items = new Plinq($itemsQuery); $result = $items->Select(function ($k, $v) use($files) { $v->images = $files->Where(function ($k2, $v2) use($v) { return $v->id == $v2->itemId; })->ToArray(); return $v; })->ToArray(); return $result; } else { $item = $this->get($id); $files = $fileService->getByItem($id); $item->images = $files; return $item; } }