/** * {@inheritdoc} */ public function preload(array $entryIds) { $query = $this->model->fromEntryCollection($this->collection); if (isset($this->hydrators['matrix'])) { $query->fromMatrix($this->hydrators['matrix']->getCols(), $this->hydrators['matrix']->getRows()); } if (isset($this->hydrators['grid'])) { $query->fromGrid($this->hydrators['grid']->getCols(), $this->hydrators['grid']->getRows()); } $files = $query->get(); foreach ($files as $file) { if (!$file->upload_location_id || !($uploadPref = $this->uploadPrefRepository->find($file->upload_location_id))) { continue; } $file->setUploadPref($uploadPref); $this->files['{filedir_' . $file->upload_location_id . '}' . $file->file_name] = $file; } }
public function testFromEntryCollectionScope() { $field = new Field(); $field->field_type = 'file'; $field->field_id = 1; $field->field_name = 'file'; $channel = new Channel(); $channel->fields = new FieldCollection([$field]); $entry = new Entry(); $entry->field_id_1 = '{filedir_1}1eecbed0063a0253.jpg'; $entry->chan = $entry->channel = $channel; $entries = new EntryCollection([$entry]); $file = File::fromEntryCollection($entries)->first(); $this->assertEquals(1, $file->file_id); }